問題タブ [observable]

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 投票する
2 に答える
4180 参照

system.reactive - Rx Observable.Subscribe がスレッドをブロックするのはなぜですか?

こんにちは' 101 Rx の例の 1 つを試してみました。

「購読を解除するには何かキーを押してください」という行が表示されない理由がわかりません。私の理解では、サブスクライブは非同期であり、サブスクライブするとすぐに返されます。メインスレッドがブロックされる原因は何ですか?

0 投票する
5 に答える
11411 参照

javascript - 監視可能なモデルへの変更をキャンセル/元に戻す方法(または配列内のモデルを変更されていないコピーに置き換える方法)

監視可能な変数を持つオブジェクトのobservableArrayを持つviewModelがあります。

私のテンプレートは、表示要素を非表示にし、値がバインドされた入力要素を表示する編集ボタンでデータを表示します。データの編集を開始してから、キャンセルするオプションがあります。このキャンセルを変更されていないバージョンのオブジェクトに戻したいのですが。

私は次のようなことをしてオブジェクトのクローンを作成しようとしました:

また

ただし、viewModel.tempContactは、連絡先が変更されるとすぐに変更されます。

この種の状況を処理するためにKnockoutJSに組み込まれているものはありますか、それともまったく同じ詳細で新しい連絡先を作成し、キャンセル時に変更された連絡先を新しい連絡先に置き換えるのが最善ですか?

アドバイスをいただければ幸いです。ありがとう!

0 投票する
4 に答える
12531 参照

design-patterns - EventListenerは監視可能ですか?

私は現在、デザインパターンに関するクラスをフォローしていて、それEventListenerObservable

どちらにもサブスクライバーのリストがあり、何かが変更されたときにこれらのサブスクライバーに通知するため、実際には違いはわかりません。

0 投票する
4 に答える
3785 参照

wpf - WPF: (監視可能な) 辞書へのバインド

私は自分のプロジェクト内でこの ObservableCollection-Class を使用しています: Link
I want to Bind a RibbonMenuButton to a ObservableDictionary<string,bool>:

しかし、内部 IDictionary-KeyValuePairs の Value-Properties が読み取り専用であるため、例外が発生します。これを解決する方法はありますか?

私は次のようなことを考えました:

しかし、これは {Binding} の {Binding} が原因で機能しません...

0 投票する
3 に答える
373 参照

c# - WPF で監視可能な構造体のメンバーへの更新をキャッチできますか?

COM ライブラリで定義されている構造体があります。私のViewModelでは、これの監視可能なインスタンスを作成し、構造体の各メンバーをビュー内の異なるコントロールにバインドしたいと考えています。ConfigStaticDataDetails 変数は、COM のデリゲートを通じて更新されます。

私のビューが更新を反映するように、構造体のメンバーへの更新をキャッチする方法はありますか?

構造体の一部:

私の: 変数:

XAML では次のようになります。

私はさまざまな方法を試しましたが、これは私の現在のコードです(動作しません)。

0 投票する
3 に答える
2099 参照

.net - Observable.Timer()はメモリリークを引き起こす可能性がありますか?

最近、ReactiveExtensionsを使用するコードに小さなバグがあることに気づきました。タイマーを購読していましたが、購読を破棄しませんでした。これにより、メモリリークが発生しました。

この危険性を強調するスニペットを作成しました。

これは正常な動作ですか?

サブスクライバーがアプリの他の部分との接続を失ったときにタイマーをガベージコレクションするために、スケジューラーはタイマーへの弱参照を保持するべきではありませんか?

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

java - オブザーバーとしてスレッドを持つ観察可能なパターンを実装することは可能ですか?もしそうなら、それは良い考えですか?

データベースから送信待ちの電子メールを取得し、それらを一時バッファにロードするJavaでシステムを開発しています。電子メールがバッファで検出されるたびに、observer/observable パターンを使用して smtp サーバーに通知します。ポイントは、各サーバーを異なるスレッドで実行し、すべてのスレッドがバッファーを監視することです。誰かが実装方法を理解するのを手伝ってくれるなら、私はそれを感謝します。以前にオブザーバー パターンを使用したことはありますが、マルチスレッドでは使用したことがありません。

私はインターネットでたくさん検索していたので、誰かが私を助けてくれることを願っていますが、答えが見つかりませんでした

0 投票する
3 に答える
7772 参照

java - 1 つのオブザーバブルに対する複数のオブザーバブル イベント

複数のタイプのイベントをオブザーバーに通知するオブザーバブルの update() 呼び出しを解釈するときに、関連する醜い条件付きキャストを回避しようとしています。また、フラグを notifyObservers()/update() メソッドに渡したくないです。

オブザーバーが監視可能なオブジェクトをポーリングして変更内容を確認する必要はありません。この新しいデータを update() メソッド (または同様のもの) を介してオブザーバーに提供したいと考えています。

私には解決策のアイデアがあります。通知の種類ごとに 1 つの監視可能なオブジェクトをインスタンス化します。例: オブザーバブルはハードウェア デバイスを表すオブジェクトであり、その状態を表すオブザーバブルが含まれます。

このように、オブザーバーは、1 つのオブザーバー、つまり通知タイプごとに 1 つのオーバーライドされた update() メソッドを使用できるため、クエリや条件付きキャストを行う必要はありません。

多くの欲求不満の後、これは私が考えることができる最もエレガントな解決策ですが、オブザーバー/オブザーバブルを適切に使用する方法についてのポイントを逃したという恐ろしい気持ちがあります。

そのソリューションに関する私の主な問題は次のとおりです。

  1. まだキャストが含まれています(少なくとも条件付きではありません)
  2. オブザーバブルはオブザーバブルである必要があるため、パブリック メンバーである必要があります。これにより、オブザーバーは addObservable() を呼び出すことができますが、notifyObservers() を呼び出すこともできます。

私は正しいことをしていますか?

ありがとう

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

c# - カスタムユーザーコントロールでのObservableCollectionのバインド

カスタムクラスを含むユーザーコントロールで作成されたObservableCollectionがあります。カスタムクラスには、いくつかの文字列とブール値が含まれていますが、特別なことは何もありません。

カスタムコントロールのXaml内に、カスタム凡例コントロールを追加しました。カスタム凡例の中に、ItemsControlがデータバインドされている別のObservableCollectionがあります。

legend.xamlで:

legend.xaml.cs:

メインユーザーコントロールのコンストラクターで、凡例のObservableCollectionをメインユーザーコントロールのObservableCollectionと同じに設定しました。

両方のObservableCollectionsに常に同じデータが含まれていても(現在は同じオブジェクトになっています)、ItemsControlは何も更新または表示しません。ただし、コードの後半でObservableCollectionsを同じに設定した場合、たとえばボタンをクリックすると、問題なく機能します。

ボタンは「setItemsSource」関数を呼び出すだけです。

起動時にそれらを等しく設定できない理由について何かアイデアはありますか?

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

c# - Rxの「排他的」および「デフォルト」サブスクリプションモード

監視可能な一連のイベントオブジェクトと、特定のタイプのイベントを処理する多数のオブザーバーがあります。次のシナリオを実行する必要があります。

  1. 一部のイベントタイプは、条件に一致する最初のオブザーバーによって処理される必要があり(たとえば、observable.SubscribeExclusively(x => {})、他のイベントタイプに対して「監視不能」になります。
  2. サブスクリプションがない場合は、アイテムが失われないようにデフォルトのハンドラー(たとえば、observable.SubscribeIfNoSubscriptions(x => {}))を設定します(このハンドラーは、たとえば、後で処理されるようにアイテムをデータベースに保存する場合があります)。

Rxでこれらのケースを処理する方法はありますか?