Угловой HttpClient не выполняется с post

#angular #httpclient

#угловой #httpclient

Вопрос:

У меня есть класс обслуживания с угловым приложением, которое выглядит следующим образом:

 @Injectable()
export class AbstractStore {
  protected url: string;

  constructor(protected http: HttpClient) {}

  read(url: string): Observable<any> {
    return this.http.get<any>(URL   url).pipe(
      ...
    );
  }

  loadRecords(): Observable<Record[]> {
    return this.read(this.url);
  }

  loadRecord(id: string): Observable<Record> {
    return this.read(`${this.url}/${id}`);
  }

  saveRecord(record: Record): Observable<Record> {
    // console statement executes
    console.log("Saving record..................", URL   this.url, record);

    // THIS NOT EXECUTE
    return this.http.post<any>(URL   this.url, record).pipe(
      ...
    );
  }

  handleError(error) {
    console.log(error.message || error);
  }
}
  

При вызове методов чтения (http.get) он выполняется правильно, и я вижу трафик на вкладке Сеть.
При переходе к saveRecord() методу — он выполняется до оператора консоли. Я не вижу выполнения на вкладке Сеть.

Я не уверен, что я делаю не так?

Ответ №1:

Вы должны использовать subscribe или toPromise

 return this.http.post<any>(URL   this.url, record)
  .pipe(
    ...
  ).toPromise();