gpt4 book ai didi

javascript - $.when申请单次请求

转载 作者:行者123 更新时间:2023-11-29 18:59:55 25 4
gpt4 key购买 nike

我正在尝试在我的代码中使用 $.when apply。但是,似乎单个请求和多个请求的格式返回不同。我该如何照顾它?我尽量不在它之外再有一个 if else。

$.when.apply(null, apiRequestList).then(function () {
for (var i = 0; i < arguments.length; i++) {
var value = arguments[0];
}
});

这是我不想做的。

if (apiRequestList.length === 1) {
$.ajax({

});
} else {
$.when.apply(null, apiRequestList).then(function () {
for (var i = 0; i < arguments.length; i++) {
var value = arguments[0];
}
});

}

最佳答案

apiRequestList 的长度为 1 时,您可以简单地将 arguments 转换为数组:

$.when.apply(null, apiRequestList).then(function() {

var _arguments = Array.prototype.slice.call(arguments);
if (Array.isArray(apiRequestList) && apiRequestList.length === 1)
_arguments = [arguments];

for (var i = 0; i < _arguments.length; i++) {
var value = _arguments[i][0];
console.log(value);
}
});

Live Example on jsFiddle (因为我们不能在 Stack Snippets 上执行 ajax):

function x(a) {
return $.post("/echo/html/", {
html: "a = " + a,
delay: Math.random()
});
}
function doIt(apiRequestList) {
$.when.apply(null, apiRequestList).then(function() {

var _arguments = arguments;
if (Array.isArray(apiRequestList) && apiRequestList.length === 1)
_arguments = [arguments];

for (var i = 0; i < _arguments.length; i++) {
var value = _arguments[i][0];
console.log(value);
}
console.log("----");
});
}
doIt([x(1), x(2), x(3)]);
doIt([x(4)]);

示例输出(它会因 Math.random() 而有所不同):

a = 4----a = 1a = 2a = 3----

关于javascript - $.when申请单次请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47470646/

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