問題タブ [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.
android - RxJava を使用したアクティビティとサブスクライブ解除の間で Observable を共有する
Observable
アプリケーション間で共有されるタイマーを実装しようとしActivities
ています。私はそれぞれに注入するダガーシングルトンであるクラスで実装を行っていPresenter
ますActivity
。
そのように、Observable を一度作成します。
次の関数を使用して、プレゼンターからサブスクライブします。
私はそれをすべてのプレゼンターと
Subject
同じように保存し、次のように呼び出します: (メソッド
内で) サブスクライブを解除します。スケジューラーを使って退会しようとしましたObservable
obs.unsubscribeOn(AndroidSchedulers.mainThread())
onPause()
Schedulers.immediate()
ただし、コールバックはとにかく X 回呼び出されるため (X は、タイマーにサブスクライブしたすべてのプレゼンターです)、サブスクライブ解除ではありません。また、ログ"Unsubcribed from subject!"
が呼び出されていません。
すべてのサブジェクトから正しく購読を解除するにはどうすればよいですか?
前もって感謝します
編集:
コメントにより、実装の詳細が追加されました。
Singleton
これは、Observable を作成してクラスのメンバーに格納する部分ですStatusManager
(ステータスもシングルトンです)。
タイマーを開始するメソッドを呼び出した後start(...)
、次のプレゼンターからメソッドを呼び出します。Presenter
register(...)
そして次のプレゼンターは…
javascript - RXJS: 動的に作成された Observable からの単一の Observable
時間の経過とともに動的に作成された複数のオブザーバブルによって供給されるオブザーバブル(ここではfixedObservable)を作成しようとしています。サブスクリプションが作成されるたびに、サブスクライバーは fixedObservable から最新の値を取得する必要があります。私はそれを達成しましたが、簡単な解決策があるかどうか知りたかったのです。コードはhttps://jsfiddle.net/dzm2t3pa/8/にあります。
ありがとう
angular - Angular: RxJs/BehaviorSubject を使用してコンポーネント間でデータを動的に共有する
2 つの兄弟コンポーネントがあり、並べて表示しています。たとえば、コンポーネント A とコンポーネント B とします。
Component-A にはフォーム コントロールがあり、ユーザーがフォームに入力したら、いくつかのビジネス ロジックを実行し、データを Component-B に表示する必要があります。
データを共有するサービスを作成しました。現在、ユーザーが変更を加えたときにデータがコンポーネント B で利用可能ですが、自動的に表示されません。コンポーネント B に「更新」ボタンを配置し、ボタンをクリックするとデータが表示されます。
私が達成したいのは、ユーザーがクリックすることなく、Component-A から Component-B へのスムーズなデータ フローです。何らかの理由で、Component-B でサービスをサブスクライブできません。
@angular バージョン ~4.0.0 の使用
Nav.Service.ts
コンポーネントA
HTML:
コンポーネント B
HTML
以下のHTMLでは、ユーザーがComponentAに変更を加えたときに{{dataFromComponentA}}にデータを自動的に表示したいと考えています。現在、「更新」ボタンをクリックするとデータが表示され、このボタンのクリックを避けたかったのです。
rxjs - サブジェクトは、完了時にサブスクライバーを安全にサブスクライブ解除しますか?
存続期間中に単一の値を発行するサブジェクトを持つこのクラスがある場合:
そして別のクラスで:
instanceOfMyClass.myEmitter$
サブジェクトが発行後に完了した場合、サブスクライブを解除する必要がありますか?