检测数组的所有函数何时返回:javascript

检测数组的所有函数何时返回:javascript,javascript,asynchronous,Javascript,Asynchronous,我遇到这样一个js面试问题: 有一个数组,其中的项都是函数,这些函数都需要ajax调用。编写一个函数来检测所有函数何时返回结果,并返回这些结果。 我没有看到原来的标题,所以我不能提供更多的信息,我知道它需要使用回调函数来解决问题,但我不知道如何编写代码,因为我不熟悉js,有人能给我一些关于代码片段的想法吗? 谢谢 请检查以下代码。。您必须定义一个计数器和一个函数,当函数中的ajax调用完成时,将调用该计数器和函数。它将更新计数器并检查所有函数是否完成ajax调用。。如果counter=array

我遇到这样一个js面试问题: 有一个数组,其中的项都是函数,这些函数都需要ajax调用。编写一个函数来检测所有函数何时返回结果,并返回这些结果。 我没有看到原来的标题,所以我不能提供更多的信息,我知道它需要使用回调函数来解决问题,但我不知道如何编写代码,因为我不熟悉js,有人能给我一些关于代码片段的想法吗?
谢谢

请检查以下代码。。您必须定义一个计数器和一个函数,当函数中的ajax调用完成时,将调用该计数器和函数。它将更新计数器并检查所有函数是否完成ajax调用。。如果counter=array length,则表示所有函数都完成了ajax调用,而与它们的顺序无关。我不能向您提供JSFIDLE链接,因为我不能在代码中提及url,因为跨域ajax url不起作用,所以您必须在您的域上执行此脚本

var counter = 0;

function checkCounter()
{
   if (counter == arr.length)
       alert ("all functions executed from array");
}


var arr = [ 
    function() { $.ajax({ url: ""}).done(function() { counter++; checkCounter() }); }, 
    function() { $.ajax({ url: ""}).done(function() { counter++; checkCounter() }); }
];

for (var i=0; i<arr.length; i++)
{
    arr[i]();
}

检查这个:谢谢!这对我帮助很大。