繁体   English   中英

Angular 8 在异步调用链之后返回可观察的

[英]Angular 8 return observable after chain of async calls

我有一个简单的函数,它一个接一个地调用 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 个 flatMap 完成时调用它。 我假设我必须让 getData() 函数返回一个我试图在底部做的可观察对象,但它不起作用,我无法在 getData() 函数上调用 .subscribe 。

像这样尝试:

工作演示

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM