問題タブ [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.
angular - Observables で .next を呼び出すことはできません
注入可能なものを使用して、2 つの兄弟コンポーネント間でデータを共有しています。私の注入可能物では、次のようなオブザーバブルを使用しています:
しかし、Observable の代わりに Subject を使用すると、問題なく動作します。Subjectの代わりにObservableを使いたいのですが可能ですか? 私はリアクティブプログラミングが初めてで、混乱しています。
angular - サブジェクト Observable 呼び出し next() を持つ Angular サービスは、コンポーネント サブスクリプションには表示されません。
Angular Service から更新されたオブジェクト値 (借り手) を取得したいと考えています。Subject
複数のコンポーネントがそれにサブスクライブして更新された値を取得できるように、Service にRxJS を作成しました。
コンポーネントで提供されたサービスを介してサブジェクトにサブスクライブすると、onNext()
関数の引数が.next()
BorrowerService から呼び出されても呼び出されないことがわかりました。
BorrowerService クラス内でサブスクライブした場合.next()
、期待どおりに機能することがわかりました。Subject は、呼び出す Service クラスと.next()
コンポーネントの間で別のインスタンスであるため、そのサブスクリプションを取得していないようです。
これは Angular Services または Observables の理解に失敗していますか? サービスの値を更新し、いつ呼び出すかを知らずにコンポーネントの変更を受動的に取得するにはどうすればよい.next()
ですか?
借り手レポート.component.ts
借り手.サービス.ts
angular - 初期化コードを実行する前に、(非同期パイプを使用して) テンプレート内のオブザーバブルがサブスクライブされるのを待つ方法は?
特定のアイテム ID が渡されると、いくつかの情報を返す HTTP サービスがあります。これはSubject
、 thenngOnInit
メソッドで最初のデータを受け取った によって行われます。
次に、async
パイプを使用して、サービスから返されたデータを HTML に表示します。
私の問題は、最初のアイテム ID でasync
呼び出した時点でパイプがオブザーバブルをサブスクライブしていないことです。したがって、これは初期化時に表示されません。selections.next
最初のデータをサブジェクトに送信して最初の HTTP リクエストを開始する前に、async
パイプがサブスクライブするまで待つにはどうすればよいですか?Observable
さまざまなライフサイクル フックを試しましたが、どれも機能していないようです。