我在我的rxjs流程中有一个地图操作
streaming.map((data) => {
//example async call
methodCall.then((response) => {
return data.test
})
})
.filter((value) => ...);
问题在于过滤器在数据.test被自然返回之前就被调用了。因此,我尝试将其转换为switchMap并返回一个可观察对象。
streaming.switchMap((data) => {
return Observable.create((observer) => {
//example async call
methodCall.then((response) => {
observer.next(data.test);
observer.complete();
});
});
})
.filter((value) => ......);
我认为在这种情况下,由于我们返回的是一个带有明确时间的可观察对象,因此只有在观察者完成调用后才会调用筛选器。但是,在值变量未定义的情况下,筛选器提前被调用了。
通常使用rxJs,我该如何解决这个问题?