Observable, возвращаемое любой из операций Http (get / post / put / etc) требует подписку.
Но в некоторых случаях Angular автоматически обрабатывает эту подписку для вас.
Например:
В любом другом случае, например, в вашем Посте, вам необходимо подписаться.
ОБНОВЛЕНИЕ
Вам нужно только добавить pipe
, если вам нужно передать ответ через набор операторов.Обычно вы, по крайней мере, захотите оператор catchError
.Я часто добавляю tap
во время разработки только для целей отладки, но это не обязательно.
Вот пример одной из моих операций Post:
createProduct(product: Product): Observable<Product> {
const headers = new HttpHeaders({ 'Content-Type': 'application/json' });
return this.http.post<Product>(this.productsUrl, product, { headers: headers })
.pipe(
tap(data => console.log('createProduct: ' + JSON.stringify(data))),
catchError(this.handleError)
);
}
Я не частосм. использование pipe
в коде клиента.Для «разделения интересов» обычно отображение / манипулирование данными выполняется в службе ... если только не требуется что-то уникальное для компонента.
Но только это:
this.postService.addPost(model).pipe().subscribe();
Передача без ответа от некоторых операторов ничего не делает.