問題タブ [rxjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
10187 参照

knockout.js - Knockout.js と Rx.js の違いは何ですか?

RxJKnockoutの違いを知っている人はいますか? 表面的には、彼らはイベント駆動型 UI を構築するために、同じ問題を解決しようとしているように見えます。しかし、両方を経験したことがある人は、どのように違いますか/どのように似ていますか? 私が選択するのを助けるために、それらについて何か説明できますか?

0 投票する
5 に答える
2534 参照

system.reactive - 最初に発生したイベントを取得してから 2 秒間イベントを抑制する方法 (RxJS)

RxJS は、重複するボタンのクリックを 2 秒間抑制するのに完全に適合するはずだと思います。ただし、実装に苦労しています。

便宜上、jsFiddle を既に作成しています。CDN が見つからなかったため、Rx を内部に貼り付けただけなので、このフィドルを下にスクロールする必要があります。

http://jsfiddle.net/cburgdorf/mUMFA/2/

0 投票する
2 に答える
240 参照

system.reactive - ストリーム B が起動するたびにストリーム A の次のイベントを抑制する方法

ストリーム B が発生するたびに、ストリーム A をちょうど 1 つの通知で停止したいと考えています。どちらのストリームもオンラインのままで、完了することはありません。

また

0 投票する
2 に答える
528 参照

system.reactive - 1つのサブジェクトを使用して、完全に異なるイベントストリームを伝播します

1つのサブジェクトを介してすべての異なるイベントストリームをプロキシする必要があります。

私はこのコードを思いついた:

出力を得ました:

期待される出力:

イベントのbar場合、それは魅力のように機能します。onNextエラーが発生するとすぐにonError関数が呼び出され、イベントストリームが終了します。しかし、私はそれをのために動作させることができませんonComplete

完全な通知が発生するたびに、それが呼び出されますが、サブスクライバーハンドラーが呼び出されるRx.Observable.empty()ことはありません。onComplete代わりに、onNextハンドラーを呼び出します。

0 投票する
3 に答える
18853 参照

rxjs - オブザーバブルの最後の値を公開する

私はホットオブザーバブル(この場合は主題)を持っています:

新しいサブスクリプションが作成されるたびに、最後に生成された値がすぐに発生するという別のオブザーバブルを作成したいと思います。

したがって、擬似コードでは:

これは大まかに私が望んでいることであり、うまくいくようです。ただし、同じことを実現するには、いくつかの組み込みメカニズムが必要だと思います

0 投票する
1 に答える
4290 参照

javascript - RxJS: オブザーバブルと単一オブザーバーの再帰リスト

オブザーバブルの再帰チェーンに問題がありました。

現在バージョン 1.0.10621 の RxJS を使用しており、Rx for jQuery と組み合わせて、最も基本的な Rx 機能が含まれています。

私の問題のシナリオ例を紹介しましょう。特定のキーワードを含むツイート/更新について、 Twitter 検索 API (JSON 応答) をポーリングしています。応答には、フォローアップ要求を生成するために使用する「refresh_url」も含まれます。そのフォローアップ リクエストへの応答には、新しい refresh_url などが含まれます。

Rx.jQuery を使用すると、Twitter 検索 API 呼び出しを監視可能なイベントにすることができます。これにより、onNext が生成されて完了します。私がこれまでに試したことは、onNext ハンドラーに refresh_url を記憶させ、それを onCompleted ハンドラーで使用して、次のリクエスト用に新しいオブザーバブルと対応するオブザーバーの両方を生成することです。このようにして、1 つのオブザーバブル + オブザーバーのペアが、もう一方のペアに無期限に続きます。

このアプローチの問題は次のとおりです。

  1. フォローアップのオブザーバブル/オブザーバーは、前任者がまだ破棄されていないときにすでに生きています。

  2. 現在生きているオブザーバーへの有効な参照を維持するために、多くの厄介な簿記を行う必要があります。実際には、そのうちの2つが存在する可能性があります。(1 つは onCompleted にあり、もう 1 つはそのライフサイクルの別の場所にあります) もちろん、この参照は、オブザーバーの購読を解除/破棄するために必要です。簿記の代わりに、私の例で行ったように、「まだ実行中ですか?」ブール値を使用して副作用を実装することです。

コード例:

リクエストからツイートまで、オブザーバブル/オブザーバーの二重層に惑わされないでください。私の例は、主に最初の層、つまり Twitter からのデータの要求に関するものです。この問題を解決するために、2 番目の層 (応答をツイートに変換する) が最初の層と 1 つになることができれば、それは素晴らしいことです。でも、それは全くの別物だと思います。今のところ。

Erik Meijer は私に Expand 演算子を指摘し (以下の例を参照)、代替としてJoin パターンを提案しました。

これは、LINQPad にコピーして貼り付けることができます。シングルトンのオブザーバブルを想定し、最終的なオブザーバーを 1 つ生成します。

だから私の質問は次のとおりです:RxJSで最も優れた展開トリックを行うにはどうすればよいですか?

編集:
展開演算子は、おそらくこのスレッドに示されているように実装できます。しかし、ジェネレーターが必要になります(そして、私は JS < 1.6 しか持っていません)。
残念ながら、RxJS 2.0.20304-betaは Extend メソッドを実装していません。

0 投票する
2 に答える
5638 参照

node.js - RxJS + node.js HTTP サーバーの実装?

RxJS 実装までは node.js に慣れていました。

これが私のトライアルコードの勉強です-

Reactive-Extensions / rxjs-node https://github.com/Reactive-Extensions/rxjs-node


rx_http.js
(node.js の http lib の RxJS ラッパー)


サーバー.js


コードはブラウザへの 1 回限りの「hello world」出力で終了し、RxServer は別のアクセス (ブラウザのリロードなど) への反応を停止します。

私はRxJSのことを学ぶ途中ですが、Web上で見つかったドキュメントはほとんどありません。

コードの何が問題なのか教えてください。より良い実装を知っている場合は、共有してください。ありがとうございました。

0 投票する
2 に答える
120 参照

javascript - Rx for JavaScript を使用して、時間枠内で特定の dom イベントを観察することは可能ですか?

keyupDom イベント ( ) が一定時間内に特定の回数発生した場合に通知を受け取ろうとしています。時間枠内のイベントを破棄するスロットルがあることがわかりました。それらをカウントしたいと思います。たとえば、keyupイベントが 500 ミリ秒以内にテキスト ボックスに対して 10 回発生した場合にのみ通知を受け取りたいとします。

0 投票する
1 に答える
5594 参照

javascript - Observable.Interval の RxJS 複数サブスクリプション

RxJSの次のような解決策はありますか? Rx の異なるスレッドでサブスクライバーの OnNexts を呼び出すことは可能ですか?

PS私の最初の素朴なアプローチ(CoffeeScriptで)は明らかに失敗しました:

2 番目のサブスクリプションは 35 秒間何も返さない、など

0 投票する
4 に答える
18885 参照

javascript - rx.jsを使用して配列への追加を観察できますか?

githubのfromArrayRxwiki

subscribe関数が作成されたときに、関数が1回だけ起動するように見えます。配列の変更を観察するのではなく、配列をそれぞれ処理するためだけに使用しているので、少し誤称のようです。ただし、そのコードはwikiにあるものとほとんど同じです。ですから、私が間違っているか、subscribe期待どおりに機能しないかのどちらかです。