問題タブ [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.
typescript - RxJs/Typescript が「プロパティ clientX が型 {} に存在しません」をスローする
私は非常に単純なことをしようとしています.マウスオーバーでevent.clientXを記録するだけです.これはモジュールコードです:
次に、後で購読します。
何が起こっているかというと、typescript コンパイラがこの特定の種類のエラーをスローし続けるということです:
まだ空のRxサブジェクトであり、マウスオーバーで初期化する必要があるため、clientXはまだそこにないためだと思います。.clientX
を削除してそのままevent
にしておくx
と、問題なくログアウトされるため、これはちょっとばかげています。
この非互換性に対処し、このエラーを回避するにはどうすればよいですか?
編集:
申し訳ありませんが、解決策は型宣言を配置することであることがわかりました
ちょうどこのような。
angular - angular2 と angular rxjs で mousemoves を観察する方法
私は次のものを持っています:
angular2 (NameCmp)
.html
ただし、console.log('after view init')
コンソールに出力されますが、console.log('logging mousemove'));
ステートメントは出力されません。
ありがとう
angular - beta6 を使用したコンパイル エラー
私のプロジェクトはrxjs beta2を使用するとうまくいきますが、beta6に更新するとコンパイルエラーの長いリストが表示されます:
次のように Observables をインポートしています。
私は何を間違っていますか?
どうもありがとう
rc1 rxjs beta6 を使用して編集すると動作します。しかし、すべてのオブザーバブルに結果をキャストする必要がありました。使用する前に:
しかし今、私は使用する必要があります:
ご覧のとおり、結果をキャストする必要があるか、コンパイル エラーが発生します (res:Sources[])
これは正常ですか?
rxjs5 - shareValue/shareBehavior の達成
いくつかのイベントに基づく Observable があり、ある時点で高価な計算を行います。その Observable からの結果を複数の異なる場所にレンダリングしたいと思います。この Observable を単純に 2 つの場所でサブスクライブすると、高価な計算を 2 回行うことになります。ここに私のポイントを家に追いやるコードスニペットがあります:
出力は次のとおりです。
マップ内で高価な計算を 1 回だけ実行したいと考えています。share
これを実現しますが、遅れて到着したサブスクライバーがレンダリングする現在の値を取得しないようにします。以前の RxJS バージョンでは、shareValue
遅れて到着したサブスクライバーが現在の値を取得できるようにしていました。ただし、これはshareBehavior
RxJS 5 で名前が変更され、完全に削除されたようです。
https://github.com/ReactiveX/rxjs/pull/588
https://github.com/ReactiveX/rxjs/pull/712
この号には長い議論があり、「ユーザーの混乱を防ぐために shareBehavior と shareReplay を削除する」ことが決定されました。混乱の可能性が何であったかはわかりません (つまり、私はこの決定によって救われたユーザーの 1 人であるということでしょうか?)。
publishBehavior
も有望に見えますが、完全には理解できずpublish
、必要以上に複雑になっているようです。
とにかく、RxJS 5 でこれを達成するための推奨される方法があるかどうか知りたいです。移行ドキュメントには推奨事項はありません。
rxjs - RxJs 代替 for if then else ステートメント
RxJs で次のコードを記述する最良の方法は何ですか。getSomethingFromDb( ) がオブザーバブルを返すと仮定します。注: RXJS コードから IF を使用したくありません
編集:質問をもっと面白くします。私のコードがこのようにもっと複雑な場合、RxJS で if ステートメントを使用せずにこれを実装する方法を教えてください。(より宣言的に)
rxjs5 - rxjs5は、サブスクリプション時に最後に発行された値を取得します
rxjs 5 を使用して、オブザーバブルをサブスクライブし、最後に発行された値でストリームを開始したいと考えています。演算子 '.cache' はこのために構築されているはずですが (私はそう思います)、動作させることができません。(ボタンをクリックして)オブザーバブルを起動し、3秒後にサブスクライブする小さなテストを行いました。理論的には、購読時にそのクリック放出を取得する必要がありますが、そうではありません。
javascript - Angular2 - オブザーバブルから送信されたオブジェクトのプロパティの値を合計します
私のservice.component.jsでは、http 呼び出しから Student の配列のオブザーバブルを返します。Student オブジェクトには age というプロパティがあり、
生徒.ts
service.componnet.js
上記のオブザーバブルに対するオブザーバーであるstudentManagement.component.tsでは、学生の年齢を合計したいと考えています。私はソースに sum() を入れることができることを知っています (ID、名前、個人の年齢など、学生の他の情報もページに表示する必要があるため、これはあまり好ましくありません)。または _studentList から計算します。この2つ以外に方法はありますか?