問題タブ [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 に答える
2412 参照

android - RxJava を使用したアクティビティとサブスクライブ解除の間で Observable を共有する

Observableアプリケーション間で共有されるタイマーを実装しようとしActivitiesています。私はそれぞれに注入するダガーシングルトンであるクラスで実装を行っていPresenterますActivity

そのように、Observable を一度作成します。

次の関数を使用して、プレゼンターからサブスクライブします。

私はそれをすべてのプレゼンターと Subject同じように保存し、次のように呼び出します: (メソッド 内で) サブスクライブを解除します。スケジューラーを使って退会しようとしましたObservableobs.unsubscribeOn(AndroidSchedulers.mainThread())onPause()Schedulers.immediate()

ただし、コールバックはとにかく X 回呼び出されるため (X は、タイマーにサブスクライブしたすべてのプレゼンターです)、サブスクライブ解除ではありません。また、ログ"Unsubcribed from subject!"が呼び出されていません。

すべてのサブジェクトから正しく購読を解除するにはどうすればよいですか?

前もって感謝します

編集:

コメントにより、実装の詳細が追加されました。

Singletonこれは、Observable を作成してクラスのメンバーに格納する部分ですStatusManager(ステータスもシングルトンです)。

タイマーを開始するメソッドを呼び出した後start(...)、次のプレゼンターからメソッドを呼び出します。Presenterregister(...)

そして次のプレゼンターは…

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

javascript - RXJS: 動的に作成された Observable からの単一の Observable

時間の経過とともに動的に作成された複数のオブザーバブルによって供給されるオブザーバブル(ここではfixedObservable)を作成しようとしています。サブスクリプションが作成されるたびに、サブスクライバーは fixedObservable から最新の値を取得する必要があります。私はそれを達成しましたが、簡単な解決策があるかどうか知りたかったのです。コードはhttps://jsfiddle.net/dzm2t3pa/8/にあります。

ありがとう

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

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}}にデータを自動的に表示したいと考えています。現在、「更新」ボタンをクリックするとデータが表示され、このボタンのクリックを避けたかったのです。

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

rxjs - サブジェクトは、完了時にサブスクライバーを安全にサブスクライブ解除しますか?

存続期間中に単一の値を発行するサブジェクトを持つこのクラスがある場合:

そして別のクラスで:

instanceOfMyClass.myEmitter$サブジェクトが発行後に完了した場合、サブスクライブを解除する必要がありますか?