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);
        });
    }

但是当我像这样更改代码时,它会发送一条未识别的消息错误


错误:

怎么了?
谢谢,问候

如果第一个版本有效而​​第二个无效,那么 ab 是数组,因此您需要使用

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 - 检查控制台以查看结构上的差异