我对Angle不熟悉,我正在开发一个执行以下操作的项目:
如上所述,我有三个异步调用,需要使用观察者。问题是我不知道如何将数据从一个观察者提供给另一个观察者,以及如何处理此问题。我尝试使用回调,但是它返回时会给多次调用和多次返回带来更多问题。谁能让我知道如何处理这种情况?
答案 0 :(得分:6)
您需要链接可观察对象,如下所示:
this.readFileObservable.pipe(
map(fileData => this.convertToArray(fileData)),
switchMap(array => {
const observables = array.map(element => this.createDBCallObservable(element));
return merge(...observables);
}),
filter(singleResult => !!singleResult),
).subscribe(singleResult => {
this.writeToAFile(singleResult);
});
在Stackblitz上查看以下操作: https://stackblitz.com/edit/angular-6zfwdo
请记住,这是一个盲目的答复,可能还有更多情况需要处理,例如错误处理(我只是使用上面的过滤器跳过了空结果)。您应该真正阅读有关RxJs运算符的更多信息,当您将其缠绕在头上时,它是一个非常强大的工具。