【发布时间】:2015-06-09 17:27:48
【问题描述】:
我在 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 调用完成。我知道我需要使用回调。但是,我不确定如何以这种方式构造我的代码。我该怎么做?
【问题讨论】:
-
如果所有答案都无效或您遇到问题,请告诉我,以便我提供帮助
标签: javascript arrays asynchronous