JQuery $.当多个$.ajax错误
JQuery $.when multiple $.ajax error
我有这样的代码
prod为输入数据
function moduledep(prod){
$.when(
$.ajax({
type : "POST",
url : 'getRps',
data : {prod : prod.value},
dataType: "JSON"
})
).done(function(a) {
console.log(a[0].moduleid);
});
}
但是当我像这样更改代码时,它会发送一条未识别的消息错误
错误:
怎么了?
谢谢,问候
如果第一个版本有效而第二个无效,那么 a
和 b
是数组,因此您需要使用
console.log(a[0][0].moduleid);
console.log(b[0][0].moduleid);
因为如果传递给 $.when
的承诺超过 1 个,则传递给 done
回调的参数结构会发生变化。
如果传递给 $.when
的 promise 超过 1 个,则每个 promise 回调的参数集将作为数组以相同的顺序传递给 done 回调。所以在你的情况下,因为你使用 ajax promise a
& b
将是每个包含 3 个值的数组,它们是 ajax 数据,ajax 状态和jqXhr 对象。
演示:Fiddle - 检查控制台以查看结构上的差异
我有这样的代码
prod为输入数据
function moduledep(prod){
$.when(
$.ajax({
type : "POST",
url : 'getRps',
data : {prod : prod.value},
dataType: "JSON"
})
).done(function(a) {
console.log(a[0].moduleid);
});
}
但是当我像这样更改代码时,它会发送一条未识别的消息错误
错误:
怎么了?
谢谢,问候
如果第一个版本有效而第二个无效,那么 a
和 b
是数组,因此您需要使用
console.log(a[0][0].moduleid);
console.log(b[0][0].moduleid);
因为如果传递给 $.when
的承诺超过 1 个,则传递给 done
回调的参数结构会发生变化。
如果传递给 $.when
的 promise 超过 1 个,则每个 promise 回调的参数集将作为数组以相同的顺序传递给 done 回调。所以在你的情况下,因为你使用 ajax promise a
& b
将是每个包含 3 个值的数组,它们是 ajax 数据,ajax 状态和jqXhr 对象。
演示:Fiddle - 检查控制台以查看结构上的差异