javascript - 检测链接函数的结束?

时间:2009-12-19 21:56:06

标签: javascript function chaining

今天我正在使用链式函数调用处理一个宠物项目,我很好奇我是如何检测链中的最后一个函数何时执行的。例如:

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

在func2-4完成“初始数据”处理后,我想检测func4何时完成。因为func4()并不总是链中的最后一个函数,例如它可以以.func3()或.func5()结尾,或者我可以根据我想要做的事情混合我的函数调用,我正在尝试一种方法来检测不再进行函数调用但是我没有走得太远。

3 个答案:

答案 0 :(得分:5)

你不能。

此外,如果他们没有链接:

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

您认为最后一项功能是什么?每个函数都是它自己的链中的最后一个函数,但是如果你在每个步骤之后完成某个函数,那么它将无效。

只需创建一个您最后调用的函数来完成该过程。

答案 1 :(得分:3)

传统方法是在最后一行之后将你想做的事情放在下一行:

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

答案 2 :(得分:3)

您可以编写音序器,这将帮助您为您完成此操作。不是执行直接调用,而是移动函数的名称并逐个调用它们。像这样的东西

executeSequence(func1('init_dat'),[
    'func2',
    'func3',
    'func4'
]);