4

配列アイテムがあるとしましょう

を使用して、この配列からオブザーバブルを作成できることを知っています

Rx.Observable.fromArray(items)

これから怠惰に無限に繰り返すオブザーバブルを作成するにはどうすればよいですか (つまり、要求されている限りアイテムを繰り返します)?

試した

Rx.Observable.fromArray(items).repeat()

しかし、これは遅延して実行されないため、ブラウザがロックされます。

4

2 に答える 2

1

Observable でこれを行うことはできません。あなたはEnumerableを使って見たいと思っています。

Reactive Extensions の Enumerable フレーバーは Interective Extensions として知られています。

于 2014-09-18T08:23:43.620 に答える
0

私はまだRxJSの初心者なので、おそらく私が提案しているのは完全な狂気ですが、次のような方法でこれを行うことができますか?

var items = [1, 2, 3, 4, 5];

var infiniteSource = Rx.Observable.from(items)
  .map(function (x) { return Rx.Observable.return(x).delay(1000); })
  .concatAll()
  .doWhile(function(_) { return true; /* i.e. never end */ });

infiniteSource.subscribe(function(x) { console.log(x); });

ここに例があります: http://ctrlplusb.jsbin.com/sihewo/edit?js,console

コンソールがあふれないように、遅延がそこに入れられます。「部分が不要になるまで」に関しては、おそらく購読解除または他のメカニズムを doWhile に注入できますか?

于 2016-01-28T20:47:13.600 に答える