1

次のようなメソッドの連鎖を可能にする配列のようなオブジェクトがあると仮定します。

var ds = new DataSet(items);
var subset = ds.filter(condition1).filter(condition2);

チェーンの最後のメソッドが処理された後にコードを実行する方法はありますか?別の.finalize()(またはend/ execute/...) メソッド呼び出しを手動で追加する必要はありませんか?

これはどこかで見たことがあると思いますが、詳細は思い出せません。おそらく、先物/約束/延期がここで役立つでしょう-しかし、メソッド呼び出しがチェーンの最後であるかどうかを判断するために常に「未来を調べる」必要があるため、その方法はよくわかりません。

4

1 に答える 1

1

メソッドを制御する場合はfilter、ファイナライズ パラメータを追加することをお勧めします。

.filter(condition,[some finalizer function]);

filter:

if (finalizer){
   finalizer();
}

[コメントに基づいて編集]

別のアプローチとして、ファイナライザ条件を許可することもできます。そのため、.filter(condition)では、 の内容でconditionファイナライズの必要性が定義されています。

のようなもの (私はあなたの状態のタイプを知りません, 物事を作り上げているだけです):

if (condition.match('f=true')) {
  finalizer();
}
于 2011-04-16T07:43:41.310 に答える