我有一个 JavaScript 字符串数组,数组定义如下:
var myArray = [];
myArray.push('1');
myArray.push('2');
myArray.push('3');
我需要循环遍历数组,并调用一个运行异步函数。该函数的样式如下:
function myAsyncFunction(id, callback) {
$.ajax({
url: '/api/items',
data: { 'id':id },
type: 'POST',
dataType: 'text',
success: function(result) {
if (callback) {
callback();
}
}, error: function() {
if (callback) {
callback();
}
}
}
我想遍历数组中的所有项,并计算运行它们所需的时间。我希望做类似于这样的事情:
var startTime = new Date();
for (var i=0; i<myArray.length; i++) {
myAsyncFunction(myArray[i]);
}
var duration = new Date() - startTime;
显然,以上方法不起作用,因为它在移动到数组中的下一项之前并没有等待ajax调用完成。我知道我需要使用回调函数。但是,我不确定如何以这种方式构造我的代码。我该怎么做?