【问题标题】:How to know which observable triggers change in Rx.Observable.combineLatest [duplicate]如何知道 Rx.Observable.combineLatest 中哪些可观察触发器发生了变化 [重复]
【发布时间】:2017-01-11 07:29:49
【问题描述】:

我可以使用 Rx.Observable.combineLatest 以便在任何可观察到的更改时通知更改。但是我怎么知道哪些可观察到的变化呢?

var s1 = someObservable1();
var s2 = someObservable2();
Rx.Observable.combineLatest(s1, s2).subscribe(function(){
    // How to know which Observable triggers combineLatest change

});

【问题讨论】:

    标签: rxjs observable


    【解决方案1】:

    RxJs 没有提供实现这一点的方法。不过,您可以使用其他状态来做到这一点:

    var trigger = "";
    
    Rx.Observable
      .combineLatest(
        s1.do(function() { trigger = "s1"; }),
        s2.do(function() { trigger = "s2"; }))
      .subscribe(function(){
        // use trigger
      });
    

    【讨论】:

    • 看起来很脏,因为我们将状态存储在管道之外。看起来不太好。但绝对有效
    • 制作一个元组(项目,时间戳)并将它们组合在一起,而不是将具有更大时间戳的项目作为最后一个事件也有效。拥有外部变量似乎不是正确的方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    相关资源
    最近更新 更多