#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();