使用与jQuery.when()不同的数组

使用与jQuery.when()不同的数组,jquery,jquery-deferred,.when,Jquery,Jquery Deferred,.when,我正在使用$。当在运行其他逻辑之前运行两个函数时。现在,在一些情况下,在执行相同的逻辑之前,我需要运行一组不同的函数,所以我想将函数数组传递给$ 比如: function funcA(){ console.log("funcA"); } function funcB(){ console.log("funcB") } var funcArr = [funcA, funcB]; $.when(funcArr).then(function(){ console.log("D

我正在使用
$。当
在运行其他逻辑之前运行两个函数时。现在,在一些情况下,在执行相同的逻辑之前,我需要运行一组不同的函数,所以我想将函数数组传递给
$

比如:

function funcA(){
    console.log("funcA");
}
function funcB(){
    console.log("funcB")
}
var funcArr = [funcA, funcB];

$.when(funcArr).then(function(){
    console.log("DONE!");
});
但这不起作用,写入控制台的唯一内容是“完成!”。 我读了以下内容,但以下行为相同:

$.when.apply($, funcArr).then(function(){
    console.log("DONE!")
});
怎么了?
谢谢。

您对
$的输入。如果
不是类型
延迟的
,这是函数的预期输入类型-

在最简单的级别上,您可以使用函数作为
beforeStart
构造参数来构造
Deferred
类型。比如:

var funcArr = [$.Deferred(funcA), $.Deferred(funcB)];
这是一把小提琴:

另外:

如果您只是尝试执行一系列函数中的每个函数,则不需要涉及
延迟
。只需使用
$迭代数组即可。每个
,如:

$.each(funcArr, function(){
    this();
});