gpt4 book ai didi

javascript - 使用 jQuery 发送一个又一个 AJAX 调用

转载 作者:行者123 更新时间:2023-11-28 19:25:35 27 4
gpt4 key购买 nike

在循环和对象数组时,我在发送 AJAX 调用之后遇到问题。代码如下

    var def = true;
$.each(urls, function(index, val) {
var postResult = $.Deferred();
link = 'http://myurl.com' + val.aslug + '/' + val.slug;
$.when(def).then(function(){
$.post('https://graph.facebook.com ', {id : link, scrape : 'true' }, function(data, textStatus, xhr) {
}).always(function(){

postResult.resolve(5);
});

});
def = postResult;
});

问题是第一次和第二次通话都正常。但是第三次​​调用和以下与第二次调用相同:/我认为每个都不会更改为下一个对象

最佳答案

在这种情况下,最简单的方法是:将变量链接赋值移到“when-then”结构内部。

var def = true;
$.each(urls, function(index, val) {
var postResult = $.Deferred();

$.when(def).then(function(){
var link = 'http://myurl.com' + val.aslug + '/' + val.slug;
$.post('https://graph.facebook.com ', {id : link, scrape : 'true' }, function(data, textStatus, xhr) {
}).always(function(){

postResult.resolve(5);
});

});
def = postResult;
});

你遇到这个问题是因为 JS 的异步能力。 $.each() - 循环根本不等待“延迟的代码段”运行。它循环遍历您的数组并创建一个将执行的任务队列。

您也可以考虑使用 $.AJAX 和选项 async:False 来代替

关于javascript - 使用 jQuery 发送一个又一个 AJAX 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27951005/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com