【问题标题】:Angular 8 return observable after chain of async callsAngular 8 在异步调用链后返回 observable
【发布时间】:2019-12-04 14:47:51
【问题描述】:

我有一个简单的函数,像这样依次调用 3 个异步函数:

getData() {
    this.getUsers('2')
        .pipe(
        flatMap((data: any) => {  
            return this.getPosts(data.id);
        }),
        flatMap((data: any) => {            
            return this.getPosts(data[0].userId);
        })
        ).subscribe(results => {    
        return new Observable((observer) => {
        observer.next(results);
        observer.complete();
        });
    });
}

我希望以某种方式能够调用类似: this.getdata.subscribe() 并且在所有 3 个平面地图都完成后调用。我假设我必须让 getData() 函数返回一个我尝试在底部执行的 observable,但它不起作用,我无法在 getData() 函数上调用 .subscribe。

【问题讨论】:

    标签: javascript angular typescript rxjs


    【解决方案1】:

    试试这样:

    Working Demo

    getData() {
        return this.getUsers('2')
          .pipe(
            flatMap((data: any) => {  
              return this.getPosts(data.id);
            }),
            flatMap((data: any) => {            
              return this.getPosts(data[0].userId);
            })
          )
      }
    

    【讨论】:

    • 不行,我得到Cannot read property subscribe of undefined
    • 你能看一下演示吗?它带有虚拟 API
    猜你喜欢
    • 2021-04-25
    • 2019-12-19
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 2018-08-06
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多