如果您使用jQuery的deferred,这很容易。有一种方法,
$.when等待多个诺言完成,然后运行回调。那就是你应该在这里使用的。
不要使用全局
obj变量,您可以只使用AJAX调用的返回值。
function getData(id) { var thisI = i; var url = "www.whatever.com?id=" + id; return $.getJSON(url); // this returns a "promise"}
因此,
obj我们没有填充,而是返回了诺言。然后,在您的循环中,您收集了所有这些。
var AJAX = [];for (i=0; i < ids.length; i++) { AJAX.push(getData(ids[i]));}
然后,当所有这些 *** 作完成后,我们需要连接回调:
$.when.apply($, AJAX).done(function(){ // This callback will be called with multiple arguments, // one for each AJAX call // Each argument is an array with the following structure: [data, statusText, jqXHR] // Let's map the arguments into an object, for ease of use var obj = []; for(var i = 0, len = arguments.length; i < len; i++){ obj.push(arguments[i][0]); } document.getElementById("txt").innerHTML = obj[0]['field'];});
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)