首页 > 解决方案 > 两次操作后返回一个 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

标签: javascriptangularrxjsobservable

解决方案


您可以使用 rxjs 运算符中的 switchMap。

addNewItem(value: any): Observable<any> {
  return this.service.new().pipe(switchMap(x => this.service.create(x))
}

有关详细信息,请参阅以下链接: Angular4 - Nested Http Calls


推荐阅读