有4个服务。$service1、$service2、$service3、$service4。需要检查第一个的答案,如果那里满足条件,则调用第二个服务,您应该始终调用第三个和第四个服务。
$service1.pipe(
switchMap(result1 => {
this.answer1 = result1;
// вот тут надо по условию вызывать или не вызывать $service2 в зависимости от result1
return forkJoin([$service3, $service4])
})
).subscribe(([result3, result4]) => {
this.answer3 = result3;
this.answer4 = result4;
})
我不知道如何正确链接调用。
如果在您的情况下不需要 service2 的结果来检查不同的条件,那么您可以将其调用删除到
tap
. 在这个实现中,不会等待来自 service2 的响应。PS 在 pipe() 中使用 subscribe 在代码质量方面不是很好(可以移动到函数中)。
像这样实现: