当我在这个函数调用中使用括号使其行为不同时发生了什么?

时间:2014-08-14 20:51:27

标签: jquery asynchronous promise

我希望等待一系列调用中的promise对象数组。 但是,当我使用以下调用时,没有任何事情发生:

$.when.apply(null, promises).done(processFinalTable());

执行下面的代码按预期工作:

$.when.apply(null, promises).done(processFinalTable);           

执行级别发生了什么?

以下是工作jsFiddle example

的链接

2 个答案:

答案 0 :(得分:1)

在第一个中,您正在调用函数processFinalTable,并将其结果传递给done()。

在第二个中,您正在传递函数本身,这是done()需要正确执行的。

答案 1 :(得分:1)

在第一个中,processFinalTable函数执行,而done方法获取其返回值,该值将在进程完成时尝试执行此返回值。

在第二个方法中,done方法接受函数本身,以便在完成进程时可以使用它。