我有一些代码

function getSomeInfoFromDB() {
    let promises = [];
    let order = [];
    $("tr").each(function(index) {
        let value1 = $(this).children("td:nth-child(4)").text();
        let value2 = $(this).children("td:nth-child(5)").text();

        order.push({
            index: index,
            a: value1,
            b: value2,
            promiseResult: ""
        });
        promises.push(new Promise((resolve) =>
$.post("http://url.com/getDataFromDataBase.php", {a: value2})
            .done(resolve)));

    });

    Promise.all(promises)
        .then(values => values)
        .then(result => $(order).each(function() {
            this.promiseResult = result;
        }))
        .then(console.log(order));
}


我需要保存索引,value1,value2和PromiseResult(此$ each迭代的数据库答案)
对于每个TR元素到关联数组或某物
我无法得到正确的结果。

我需要类似此数组的内容-order[{index: 1, a: value1forIndex1 , b: value2forIndex1, promiseResult: REZULT1} ,{index: 2, a: value1forIndex2 , b: value2forIndex2, promiseResult: REZULT2}]

最佳答案

这应该适合您的要求

function getSomeInfoFromDB() {
  var promises = $('tr').map((index, elem) => {
    let val1 = $(elem).children("td:nth-child(4)").text();
    let val2 = $(elem).children("td:nth-child(5)").text();
    return $.post('http://url.com/getDataFromDataBase.php', { a: val2 }).then(result => {
      return {
        index: index,
        a: val1,
        b: val2,
        result: result
      };
    });
  });

  Promise.all(promises)
    .then(arr => {
      console.log(arr);
    });
}

关于javascript - jQuery Post里面的Promise里面每个如何创建数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47576085/

10-12 20:39