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