跳过直到()与最后()
skipUntil :忽略发出的项目,直到另一个 observable 发出
last:从序列中发出最后一个值(即等待它完成然后发出)
请注意,从传递给的 observable 发出的任何内容都skipUntil
将取消跳过,这就是我们需要添加last()
- 以等待流完成的原因。
main$.skipUntil(sequence2$.pipe(last()))
官方:https : //rxjs-dev.firebaseapp.com/api/operators/skipUntil
可能的问题:请注意,如果没有发出任何内容last()
,它本身就会出错。该last()
运营商确实有default
配合使用的谓词参数,但只有当。我认为如果这种情况对您来说是个问题(如果sequence2$
可以完成而不发出),那么其中一个应该可以工作(目前未经测试):
main$.skipUntil(sequence2$.pipe(defaultIfEmpty(undefined), last()))
main$.skipUntil(sequence2$.pipe(last(), catchError(() => of(undefined))
请注意,这undefined
是要发出的有效项目,但实际上可以是任何值。另请注意,这是连接到sequence2$
的main$
管道而不是管道。