javascript - 如何在 RxJS 中使用 concat 运算符,但忽略第一个可观察的所有排放

标签 javascript rxjs reactive

假设我们有 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/

相关文章:

javascript - 导入 Bootstrap 模式后下拉菜单不起作用

javascript - 将高度自定义为 DHTMLX 甘特图

javascript - 等待所有 Observables 完成

javascript - Angular HTTP 请求延迟拦截器未按预期工作

javascript - 在 flot.js 中为 JSON 数据绘制折线图和条形图

javascript - 如何消除 HTML5 canvas mousepan 方法中的摆动效果?

node.js - 试图让我自己的 RxJs 可观察

spring - 使用 spring webflux WebClient 进行服务发现

angular - 响应式(Reactive)表单 typescript CKEDITOR CustomValueModule

c# - 使用 Reactive Extensions、嵌套订阅按组缓冲