1

今日、チェーン関数呼び出しを使用するペット プロジェクトに取り組んでおり、チェーン内の最後の関数が実行されたときをどのように検出するのか興味があります。例えば:

func1('initial data').func2().func3().func4();

そして、func2-4 が「初期データ」の作業を終了した後、func4 がいつ完了したかを検出したいと思います。func4() は常にチェーンの最後の関数であるとは限らないため、.func3() または .func5() で終了することもできます。関数呼び出しが行われていないことを検出する方法を考えようとしていますが、あまり進んでいません。

4

3 に答える 3

5

できません。

さらに、チェーンされていない場合:

var v = func1('initial data');
v = v.func2();
v = v.func3();
v = v.func4();

最後の関数は何だと思いますか? すべての関数はそれ自体のチェーンの最後の関数ですが、各ステップの後に何かを確定するとうまくいきません。

プロセスを終了するために最後に呼び出す関数を作成するだけです。

于 2009-12-19T22:05:58.890 に答える
3

伝統的なアプローチは、次の行の最終関数の後に実行したいことを配置することです:

func1('initial data').func2().func3().func4();
allFunctionsDone();

;)

于 2009-12-19T22:02:48.027 に答える
3

これを行うのに役立つシーケンサーを作成できます。直接呼び出しを実行する代わりに、関数の名前をシフトして 1 つずつ呼び出します。このようなもの

executeSequence(func1('init_dat'),[
    'func2',
    'func3',
    'func4'
]);
于 2009-12-19T22:03:47.333 に答える