gpt4 book ai didi

javascript - 从动态创建的 ajax 调用列表中读取结果

转载 作者:行者123 更新时间:2023-11-28 20:05:29 26 4
gpt4 key购买 nike

我正在创建一个需要执行的动态数组 af ajax 调用。所以我做了类似的事情:

        var requests = [];

if (weNeedCustomerData) {
var customerCallPromise = $.ajax(...);
requests.push(customerCallPromise);
}
if (weNeedOrdersData) {
var ordersCallPromise = $.ajax(...);
requests.push(ordersCallPromise);
}
if (weNeedSalesData) {
var salesCallPromise = $.ajax(...);
requests.push(salesCallPromise);
}

$.when.apply(null, requests).done(function (result1, result2, result3) {
...
});

只要我所有的“if”条件都成立,它就可以正常工作。我可以获得每次调用的结果。

但是我应该如何处理这种情况,例如,第一个“if”语句为假,而我最终只有两个请求?我在“done”方法中只有两个结果。

在我不知道会有多少请求、因此也不知道“done”函数有多少参数的情况下,如何读取这些结果?

最佳答案

单独存储或处理结果:

    var requests = [], customerData, ordersData, salesData;

if (weNeedCustomerData) {
var customerCallPromise = $.ajax(...).done(function(result){
customerData = result;
});
requests.push(customerCallPromise);
}
if (weNeedOrdersData) {
var ordersCallPromise = $.ajax(...).done(function(result){
ordersData = result;
});
requests.push(ordersCallPromise);
}
if (weNeedSalesData) {
var salesCallPromise = $.ajax(...).done(function(result){
salesData = result;
});
requests.push(salesCallPromise);
}

$.when.apply(null, requests).done(function () {
//Here you know all relevant requests are complete
if(customerData) {
//...
}
//etc
});

关于javascript - 从动态创建的 ajax 调用列表中读取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20902016/

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