Angular 等待所有有序的观测值完成RxJs
我有一个场景,其中必须按顺序执行三个http请求,在所有三个请求都发出一个值之后,我必须执行重定向 我使用concat实现了这一点Angular 等待所有有序的观测值完成RxJs,angular,rxjs,Angular,Rxjs,我有一个场景,其中必须按顺序执行三个http请求,在所有三个请求都发出一个值之后,我必须执行重定向 我使用concat实现了这一点 concat(request1$, request2$, request3$).subscribe( () => {}, (err) => {}, () => redirect... ) 但是我想知道是否有一个操作符专门执行此操作(按顺序执行,并且仅当所有可观察对象发出时发出)。您可以使用zip函数 在所有可观察对象发出后,将值
concat(request1$, request2$, request3$).subscribe(
() => {},
(err) => {},
() => redirect...
)
但是我想知道是否有一个操作符专门执行此操作(按顺序执行,并且仅当所有可观察对象发出时发出)。您可以使用
zip
函数
在所有可观察对象发出后,将值作为数组发出
例如
您可以使用
zip
功能
在所有可观察对象发出后,将值作为数组发出
例如
concat
是正确的选择。如果您希望在下一次
回调中执行重定向,而不是在完成
回调中执行重定向,则可以将.pipe(toArray())
或.pipe(last())
添加到您的concat
可观察对象中。您还可以使用concatMap
或switchMap
链接您的请求,但这样做不会更优雅。您希望在这里可以看到什么?数组、单个值还是一系列值?我们知道您希望观察结果按顺序完成,但请澄清输出。您找到解决方案了吗?concat
是正确的方法。如果您希望在下一次
回调中执行重定向,而不是在完成
回调中执行重定向,则可以将.pipe(toArray())
或.pipe(last())
添加到您的concat
可观察对象中。您还可以使用concatMap
或switchMap
链接您的请求,但这样做不会更优雅。您希望在这里可以看到什么?数组、单个值还是一系列值?我们理解您希望观察结果按顺序完成,但请澄清输出。您找到解决方案了吗?zip
不会按顺序执行给定的观察结果。zip
不会按顺序执行给定的观察结果。