2017-03-01 64 views
0

我有兩個可觀察值,而我只需要每個值。如果observable2先推入一個值,我想等待並保持收到的值,直到observable1推入一個值並推送保持的值。基本上與skipUntil相同的行爲,不同之處在於我不想放棄該值。我想我可以通過對可觀察數據進行連接來做到這一點,但我希望將它們分開。等待並累計值,直到其他可觀察到的火災

observable1 
    .take(1) 
    .subscribe(doSomething) 

observable2 
    .take(1) 
    // .skipUntil(observable1) 
    .waitUntil(observable1) // Something like this 
    .subscribe(doSomethingElse) 
+0

不是簡單的'merge()'或'concat()'你需要什麼? – martin

回答

1

這將等待observable1推,然後切換到observable2:

observable1.switchMap(() => observable2) 
      .take(1) 
      .subscribe(doSomethingElse); 

如果你想observable1只激活一次(例如,如果你在你的例子別的地方像訂閱吧) ,請考慮使用.share()

+0

完美!謝謝,這是我正在尋找的。 –

相關問題