1. ホーム
  2. javascript

[解決済み] あるObservableシーケンスが完了するのを待ってからemittingする方法は?

2022-09-21 20:31:12

質問

例えば Observable というように

var one = someObservable.take(1);

one.subscribe(function(){ /* do something */ });

次に、2番目の Observable :

var two = someOtherObservable.take(1);

さて、私は subscribe() から two に変更したいのですが one が完了する前に two サブスクライバが起動される前に完了します。

にどのようなバッファリングメソッドを使用することができますか? two にどのようなバッファリングメソッドを使えばよいでしょうか?

を一時停止させたいと考えているのでしょう。 two まで one が完了するまで

どのように解決するのですか?

私が思いつくいくつかの方法

import {take, publish} from 'rxjs/operators'
import {concat} from 'rxjs'

//Method one

var one = someObservable.pipe(take(1));
var two = someOtherObservable.pipe(take(1));
concat(one, two).subscribe(function() {/*do something */});

//Method two, if they need to be separate for some reason
var one = someObservable.pipe(take(1));
var two = someOtherObservable.pipe(take(1), publish());
two.subscribe(function(){/*do something */});
one.subscribe(function(){/*do something */}, null, two.connect.bind(two));