gpt4 book ai didi

javascript - 从 $.when .done 之外的 ajax 添加对象

转载 作者:行者123 更新时间:2023-11-30 16:54:00 25 4
gpt4 key购买 nike

function ajaxCall1(){
return $.ajax({
url : 'URL1',
data : { id : id },
type : 'GET',
});
}
function ajaxCall2(item_id)
{
return $.ajax({
url: 'URL2',
data: { item_id: item_id },
dataType: "text",
type: 'GET',
});
}

$.when(ajaxCall1()).done(function(columns){
$.each(columns, function(column, rows) {
$.each(rows, function(i, row) {
$.each(row.items, function(i, item) {
$.when(ajaxCall2(item.id)).done(function(count){
item.counter = count;
});
console.log(item);
});
});
});
});

我需要从对 item 的调用中获取一个新对象 {counter:count},它是对象 row 的嵌套部分。我不知道如何实际将对象从 $.when...});

推送到项目中

最佳答案

这是关于你需要的:

ajaxCall1().done(function(columns){ // do first ajax

var promiseArray =[]; // array for promises of subsequent ajax calls
$.each(columns, function(column, rows) {
$.each(rows, function(i, row) {
$.each(row.items, function(i, item) {
// each call returns a promise...and also has it's own "done" to update count
var promise = ajaxCall2(item.id).done(function(count){
item.counter = count;
});
// push each promise returned from `$.ajax` into array
promiseArray .push(promise);
});
});
});
// all calls will be completed, can do something with main columns array
$.when.apply($, promiseArray).done(function(){
/// do something with columns
});
});

关于javascript - 从 $.when .done 之外的 ajax 添加对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30057338/

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