javascript - 两次操作后返回一个 observable
问题描述
我有两个函数返回一个Observable
:
//get a new entity from server
public new(): Observable<any> {
return this.http.get<any>(api + 'New');
}
//create the entity
public create(data: any) {
return this.http.post(api + 'Update', data);
}
现在,我需要编写一个函数来调用这两个函数并返回一个Observable
:
addNewItem(value: any): Observable<any> {
this.service.new().subscribe(x => {
// do something with "X"
return this.service.create(x);
});
}
但是,这不起作用,因为return
在里面subscribe
。
解决方案
您可以使用 rxjs 运算符中的 switchMap。
addNewItem(value: any): Observable<any> {
return this.service.new().pipe(switchMap(x => this.service.create(x))
}
有关详细信息,请参阅以下链接: Angular4 - Nested Http Calls
推荐阅读
- cmake - cmake -E 等效于 cmake 2.8
- excel - 滚动率预测模型是否与 ARIMA 相同
- reactjs - 如何解决“此导航器同时具有导航和容器道具”错误
- windows - 如何将“Print Screen”键发送到应用程序?
- laravel - Laravel同时获取2个where子句的数据
- docker - Docker compose 挂载空卷
- ruby-on-rails - Rails 中的类名冲突
- sql - 带有会话变量的 postgresql 行级安全性
- javascript - 取消选中复选框并重新选中 jquery 中的前一个复选框
- python - 将 mongodump BSON 文件转换为 Parquet