javascript - RxJS 运算符类似于 .combineLatest 但只要单个可观察对象发出就会触发

标签 javascript typescript rxjs rxjs5 angular2-observables

我正在寻找一种方法将多个 Observables 组合成标量值的平面元组 - 类似于 .combineLatest() - 但除了它应该发出一个新的值元组,即使没有值已在其中一个源可观察对象上发出 - 在元组中为那些尚未发出的可观察对象产生“未定义”。

例子:

const s1 = new Subject<string>();
const s2 = new Subject<string>();

Observable.combineWithUndefined(s1, s2).subscribe( ([t1, t2]) => {
    console.log(t1.toString() + " " + t2.toString());
});

s1.next("Hello");
s2.next("John");

// expected output:
// Hello undefined
// Hello John

最佳答案

使两个主题startWith未定义的值,因此当其中一个 then 发出第一个值时,combineLatest 也会发出并将其与另一个主题的起始值组合。

关于javascript - RxJS 运算符类似于 .combineLatest 但只要单个可观察对象发出就会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40786658/

相关文章:

typescript - 如何在VsCode中加速Typescript Intellisense?

javascript - RxJS - 可观察模块 - 抛出未定义

javascript - Google 图片查看模式示例

JavaScript 或 Rails : How to grab a BLE device or bluetooth

javascript - (ngModelChange) 删除最后一个符号 (Angular)

node.js - Node/Angular 2 : Update navbar and show sidebar after user login

javascript - 如何停止去抖动的 Rxjs Observable?

javascript - 我可以订阅正在初始化的变量吗?

javascript - setInterval倒计时更新时间

javascript - 如何在 node.js 中使用 vimeo 上传?