自分の「購読」を宣言して順番に実行するようにRxJSパターンを理解しようとしています。ここでRxJS - Fireが順番に購読する
は私がにいる状況だ:
var flag = false;
// Stream that non-deterministically emits `true` when flag is true
var random$ = Rx.Observable.interval(1000)
.map(() => setFlagToRandomTrueOrFalse())
.filter(x => x)
.first();
// How can I declare my "subscribes" so that the console.logs happen in order?
var sub1 = random$.subscribe(() => console.log(1), console.log, resetFlagToFalse);
var sub2 = random$.subscribe(() => console.log(2), console.log, resetFlagToFalse);
function setFlagToRandomTrueOrFalse() {
flag = flag || !!Math.floor(Math.random() * 2);
return flag;
}
function resetFlagToFalse() { flag = false; }
これは、現在.subscribe
の非同期性質によるランダムな順序で1
と2
を出力します。
また、これらの「サブスクライブ」の正しい名前は何ですか? RxJSの合計はここにあります。
順序が重要な場合はサブスクライブ、それらを単一に構成すべきではありませんか? – cartant
私はサブスクリプションの 'onNext'内でサブスクライブをネストすることを避けたいと考えていました。これは単なる例であり、 'flag'は実際には別のライブラリによって管理されるブール値です。 –