gpt4 book ai didi

javascript - Jquery 延迟来自每个循环的 ajax 请求

转载 作者:行者123 更新时间:2023-11-28 05:55:10 24 4
gpt4 key购买 nike

三天来我一直在尝试找到一种在我的代码中使用 JQuery 延迟方法的方法,但不幸的是我从未找到解决方案。

我有两个函数。第一个 init_items 发送第一个 ajax 请求以获取项目列表,然后循环使用这些项目名称发送其他请求以获取有关项目的矿石详细信息。因此,在这个功能中,我希望当第一个请求完成时,启动以下请求。

在第二个函数中,单击时调用,我希望系统在获取数据之前等待第一个函数完全完成(所有请求完成)。

    function init_items(id) {

$.when(
$.ajax({
async: false,
data: { type : type, name : domain },
type: 'GET',
url: 'select_items.php'
}).done( function (data) {

var promises=[];

$.each( JSON.parse(data), function(k,v) {

var code = v.code;

getCurrentItem(code);

var req = $.get("get_groups.php", { id: id }).done(function(data1) {

res = JSON.parse(data1);
global_news[domain] = res;

promises.push( req );
});

return $.when.apply(null, promises).done(function(){
console.log('done 1');
});
});
}

$("button[name='refresh_value']").on("click", function() {

var id = $("select[name='id']").val();

$.when(init_items(id)).done(function(n){
console.log(n.num);
console.log('all set');
});
});

当前,单击按钮时,函数 init_items 会启动,但不会等待结果显示信息。

我读了很多关于aboud、deferred、promise、when的案例,但没有解决这个问题。

有人有想法吗?我非常感谢您的帮助。

最好,

山姆

最佳答案

谢谢大家。我已经找到解决办法了我将这个函数分成了两个函数。当第一个完成其请求后,它会调用第二个,后者启动在 promise 中声明的请求。

关于javascript - Jquery 延迟来自每个循环的 ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37768143/

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