目前我有3个请求并行运行。现在我需要等待第一个完成,然后我发射另外两个平行。这就是我现在所拥有的:
return Observable
.forkJoin(request1, request2, request3)
.map((successValues: boolean[]) => {
return successValues.every(x => x);
})
.do(success => {
if (success) {
this.store.dispatch({
type: actions.UPDATE_SUCCESS
});
}
});
最佳答案
您应该使用switchMap
运算符。
request1.switchMap(response1 => {
Observable
.forkJoin(request2, request3)
.map((successValues: boolean[]) => {
return successValues.every(x => x);
})
.do(success => {
if (success) {
this.store.dispatch({
type: actions.UPDATE_SUCCESS
});
}
}