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

时间:2015-02-24 04:36:12

标签: javascript asynchronous

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

1 个答案:

答案 0 :(得分:0)

请检查以下代码..您必须定义一个计数器和一个函数,只要ajax调用在函数中完成,它将更新计数器并检查所有函数是否完成了ajax调用。 counter =数组长度比它意味着所有函数都完成了它们的ajax调用,而不管它们的顺序如何。我无法为您提供jsfiddle链接,因为我无法在此代码中提及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]();
}