Javascript 如何在解析承诺之前合并响应数组并运行多个ajax调用

Javascript 如何在解析承诺之前合并响应数组并运行多个ajax调用,javascript,php,jquery,laravel,Javascript,Php,Jquery,Laravel,我在循环中嵌套了ajax。现在我想将返回的ajax合并到一个数组或单个对象中。谢谢 $.each(res.data, function (key, value) { SerialNumber = value['serial']; Code = value['code_history'][0]['gift_code']; return new Promise((resolve, reject)=>{ $.ajax({ type:

我在循环中嵌套了ajax。现在我想将返回的ajax合并到一个数组或单个对象中。谢谢

$.each(res.data, function (key, value) {
    SerialNumber = value['serial'];
    Code = value['code_history'][0]['gift_code'];
    return new Promise((resolve, reject)=>{
        $.ajax({
            type: "POST",
            data: "Code=" + Code + "&action=cameraInfo_more" + "&SerialNumber=" + SerialNumber,
            url: "ajax/get-customer-info-params",
            cache: false,
            dataType: "json",
            success: function (res_more) {
                temp2 = res_more.data[0];

                //-- i want merge all json res_more to 1 array

                }
           })
        })
    })
}

您使用的是$.each,但如果使用
Array.prototype.map
,您将得到一个承诺数组。将其馈送到Promise.all,然后等待它返回

下面是一个例子:

Promise.all(res.data.map(value => {
    SerialNumber = value['serial'];
    Code = value['code_history'][0]['gift_code'];
    return new Promise((resolve, reject)=>{
        $.ajax({
            type: "POST",
            data: "Code=" + Code + "&action=cameraInfo_more" + "&SerialNumber=" + SerialNumber,
            url: "ajax/get-customer-info-params",
            cache: false,
            dataType: "json",
            success: function (res_more) {
                resolve(res_more.data[0]);

            }
        })
    })
})).then(x => {
    console.log(x);
});

你试过康卡特吗。在每个循环之前声明空数组。让temp2=[]和进入success函数。temp2.concat(res_more.data[0]);您可以在数组中推送ajax调用,然后使用promise.all来解决它。你能参考这篇文章的答案吗?你能帮我举个例子吗?当然,给你:)