問題タブ [subject-observer]

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 に答える
79 参照

angular - Observables で .next を呼び出すことはできません

注入可能なものを使用して、2 つの兄弟コンポーネント間でデータを共有しています。私の注入可能物では、次のようなオブザーバブルを使用しています:

しかし、Observable の代わりに Subject を使用すると、問題なく動作します。Subjectの代わりにObservableを使いたいのですが可能ですか? 私はリアクティブプログラミングが初めてで、混乱しています。

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

angular - サブジェクト Observable 呼び出し next() を持つ Angular サービスは、コンポーネント サブスクリプションには表示されません。

Angular Service から更新されたオブジェクト値 (借り手) を取得したいと考えています。Subject複数のコンポーネントがそれにサブスクライブして更新された値を取得できるように、Service にRxJS を作成しました。

コンポーネントで提供されたサービスを介してサブジェクトにサブスクライブすると、onNext()関数の引数が.next()BorrowerService から呼び出されても呼び出されないことがわかりました。

BorrowerService クラス内でサブスクライブした場合.next()、期待どおりに機能することがわかりました。Subject は、呼び出す Service クラスと.next()コンポーネントの間で別のインスタンスであるため、そのサブスクリプションを取得していないようです。

これは Angular Services または Observables の理解に失敗していますか? サービスの値を更新し、いつ呼び出すかを知らずにコンポーネントの変更を受動的に取得するにはどうすればよい.next()ですか?

借り手レポート.component.ts

借り手.サービス.ts

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

angular - 初期化コードを実行する前に、(非同期パイプを使用して) テンプレート内のオブザーバブルがサブスクライブされるのを待つ方法は?

特定のアイテム ID が渡されると、いくつかの情報を返す HTTP サービスがあります。これはSubject、 thenngOnInitメソッドで最初のデータを受け取った によって行われます。

次に、asyncパイプを使用して、サービスから返されたデータを HTML に表示します。

私の問題は、最初のアイテム ID でasync呼び出した時点でパイプがオブザーバブルをサブスクライブしていないことです。したがって、これは初期化時に表示されません。selections.next

最初のデータをサブジェクトに送信して最初の HTTP リクエストを開始する前に、asyncパイプがサブスクライブするまで待つにはどうすればよいですか?Observable

さまざまなライフサイクル フックを試しましたが、どれも機能していないようです。