假设我们有 2 个可观察值。
const obs1 = 计时器(1000); const obs2 = of(1,2,3)
如果我想等到 obs1 完成,我显然可以使用 concat 运算符。
obs1.pipe(concat(obs2)).subscribe(console.log);
或
concat(obs1, obs2).subscribe(console.log);
它可以正常工作(顺序被保留),但是从第一个 obs 发出的“0”仍然会被记录。有没有办法强制某些订阅的顺序,但忽略给定可观察量的排放? (例如,只能看到“链”中最后一个可观察值的值)。
在这种特殊情况下,我知道需要多少个值,所以我可以简单地使用skip/takeLast,但我正在寻找一个通用的解决方案,它不需要我知道从可观察对象发出的元素数量。
最佳答案
您可以仅使用ignoreElements()
。
concat(obs1.pipe(ignoreElements()), obs2).subscribe(...)
obs1
是否发出任何 next
通知并不重要。 obs1
只需要完成即可。
关于javascript - 如何在 RxJS 中使用 concat 运算符,但忽略第一个可观察的所有排放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59825238/