3

オブザーバブル値のサブスクライバーに通知される順序を決定するものは何か?

以下の GitHub の問題を見ると、信頼できる順序がないようです。 https://github.com/knockout/knockout/issues/553

ただし、コードをステップ実行すると、notifySubscribers() が forEach() を使用しているため、配列に追加された順序でサブスクライバーに通知するべきではありませんか?

残念ながら、これは Chrome では当てはまらないようです。必要に応じてコードを提供できますが、これらはノックアウトまたは私が見逃している一般的な概念的なもののようです。

4

2 に答える 2

4

順序に依存するコードを単一のオブザーバー関数に追加することで、この問題を解決しました。つまり、監視された値は、handleValueChange() によってのみ監視され、その後、必要な順序ですべてが呼び出されます。

ここから得られるのは、ここで使用されている観察パターンはビューの更新には適していますが、必須のビジネス ロジックの構築にはあまり適していないということです。

于 2013-06-23T16:27:33.013 に答える
1

サブスクライバーに通知される順序を確実に決定することはできません。サブスクライバーは独立していて、他のサブスクライバーに依存しないようにする必要があります。

于 2013-06-21T18:54:29.280 に答える