我知道应该避免嵌套订阅并应该使用 rxjs 运算符,但是我发现的有关此问题的文章通常只是说嵌套订阅不好,而没有解释原因(除了说“可能会导致问题”)。
我想知道是否有人可以帮助解决这个问题?谢谢你。
最佳答案
let sub1, sub2, sub3, sub4;
sub1 = service.call1().subscribe(result1 => {
sub2 = service.call2(result1).subscribe(result2 => {
sub3 = service.call3(result2).subscribe(result3 => {
sub4 = service.call4(result3).subscribe(result4 => {
// Do stuff with result 4
});
});
});
});
对比
let sub = service.call1().pipe(
switchMap(result1 => service.call2(result1)),
switchMap(result2 => service.call3(result2)),
switchMap(result3 => service.call4(result3)),
switchMap(result4 => service.call5(result4))
)
关于angular - 为什么嵌套订阅不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58797081/