問題タブ [rxjs5]

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 投票する
1 に答える
763 参照

javascript - 別のプロジェクト内で大理石テスト rxjs5 メソッドを使用する

rxjs5 を使用してフラックスを実装する webapp プロジェクトがあり、現在、単体テストを作成するためのソリューションを探しています。

実際、内部にカスタム オブザーバブルを実装しました。たとえば、次のようになります。

大理石のテスト方法を使用してテストし、次のように記述したいと思います(rxjsリポジトリからサンプル例を取得しました)

私の質問は:

rxjs5 プロジェクト外で大理石のテスト方法 ( などの演算子を使用) を使用することは可能ですかhot? cold私のプロジェクトでこの素晴らしいツールを使用する方法がわかりません。

ご協力ありがとうございました。

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

typescript - RxJs/Typescript が「プロパティ clientX が型 {} に存在しません」をスローする

私は非常に単純なことをしようとしています.マウスオーバーでevent.clientXを記録するだけです.これはモジュールコードです:

次に、後で購読します。

何が起こっているかというと、typescript コンパイラがこの特定の種類のエラーをスローし続けるということです:

まだ空のRxサブジェクトであり、マウスオーバーで初期化する必要があるため、clientXはまだそこにないためだと思います。.clientXを削除してそのままeventにしておくxと、問題なくログアウトされるため、これはちょっとばかげています。

この非互換性に対処し、このエラーを回避するにはどうすればよいですか?

編集:

申し訳ありませんが、解決策は型宣言を配置することであることがわかりました

ちょうどこのような。

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

angular - angular2 と angular rxjs で mousemoves を観察する方法

私は次のものを持っています:

angular2 (NameCmp)

.html

ただし、console.log('after view init')コンソールに出力されますが、console.log('logging mousemove'));ステートメントは出力されません。

ありがとう

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

angular - beta6 を使用したコンパイル エラー

私のプロジェクトはrxjs beta2を使用するとうまくいきますが、beta6に更新するとコンパイルエラーの長いリストが表示されます:

次のように Observables をインポートしています。

私は何を間違っていますか?

どうもありがとう

rc1 rxjs beta6 を使用して編集すると動作しますしかし、すべてのオブザーバブルに結果をキャストする必要がありました。使用する前に:

しかし今、私は使用する必要があります:

ご覧のとおり、結果をキャストする必要があるか、コンパイル エラーが発生します (res:Sources[])

これは正常ですか?

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

rxjs5 - shareValue/shareBehavior の達成

いくつかのイベントに基づく Observable があり、ある時点で高価な計算を行います。その Observable からの結果を複数の異なる場所にレンダリングしたいと思います。この Observable を単純に 2 つの場所でサブスクライブすると、高価な計算を 2 回行うことになります。ここに私のポイントを家に追いやるコードスニペットがあります:

出力は次のとおりです。

マップ内で高価な計算を 1 回だけ実行したいと考えています。shareこれを実現しますが、遅れて到着したサブスクライバーがレンダリングする現在の値を取得しないようにします。以前の RxJS バージョンでは、shareValue遅れて到着したサブスクライバーが現在の値を取得できるようにしていました。ただし、これはshareBehaviorRxJS 5 で名前が変更され、完全に削除されたようです。

https://github.com/ReactiveX/rxjs/pull/588

https://github.com/ReactiveX/rxjs/pull/712

この号には長い議論があり、「ユーザーの混乱を防ぐために shareBehavior と shareReplay を削除する」ことが決定されました。混乱の可能性が何であったかはわかりません (つまり、私はこの決定によって救われたユーザーの 1 人であるということでしょうか?)。

publishBehaviorも有望に見えますが、完全には理解できずpublish、必要以上に複雑になっているようです。

とにかく、RxJS 5 でこれを達成するための推奨される方法があるかどうか知りたいです。移行ドキュメントには推奨事項はありません。

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

rxjs - RxJs 代替 for if then else ステートメント

RxJs で次のコードを記述する最良の方法は何ですか。getSomethingFromDb( ) がオブザーバブルを返すと仮定します。注: RXJS コードから IF を使用したくありません

編集:質問をもっと面白くします。私のコードがこのようにもっと複雑な場合、RxJS で if ステートメントを使用せずにこれを実装する方法を教えてください。(より宣言的に)

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

rxjs5 - rxjs5は、サブスクリプション時に最後に発行された値を取得します

rxjs 5 を使用して、オブザーバブルをサブスクライブし、最後に発行された値でストリームを開始したいと考えています。演算子 '.cache' はこのために構築されているはずですが (私はそう思います)、動作させることができません。(ボタンをクリックして)オブザーバブルを起動し、3秒後にサブスクライブする小さなテストを行いました。理論的には、購読時にそのクリック放出を取得する必要がありますが、そうではありません。

https://github.com/ReactiveX/RxJS/commit/4308a04

http://codepen.io/BradLee/pen/VaqreL

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

javascript - Angular2 - オブザーバブルから送信されたオブジェクトのプロパティの値を合計します

私のservice.component.jsでは、http 呼び出しから Student の配列のオブザーバブルを返します。Student オブジェクトには age というプロパティがあり、

生徒.ts

service.componnet.js

上記のオブザーバブルに対するオブザーバーであるstudentManagement.component.tsでは、学生の年齢を合計したいと考えています。私はソースに sum() を入れることができることを知っています (ID、名前、個人の年齢など、学生の他の情報もページに表示する必要があるため、これはあまり好ましくありません)。または _studentList から計算します。この2つ以外に方法はありますか?