Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 等待map函数完成,但追加到变量_Javascript_Promise - Fatal编程技术网

Javascript 等待map函数完成,但追加到变量

Javascript 等待map函数完成,但追加到变量,javascript,promise,Javascript,Promise,目前我的代码是这样的: const exportPdf = async () => { let crops = <?=json_encode($crops)?>; let pestTables; let fillPestTables = crops.map(crop, index) => { let tableBody = await getTableBody(crop, index); $(pestT

目前我的代码是这样的:

const exportPdf = async () => {
      let crops = <?=json_encode($crops)?>;
      let pestTables;

      let fillPestTables = crops.map(crop, index) => {
        let tableBody = await getTableBody(crop, index);
        $(pestTables).append(tableBody);
      });

      console.log(pestTables);

    }
我对使用承诺非常陌生,所以如果我把事情搞砸了,我道歉。有谁能给我指引正确的方向或解释一下这里需要发生什么


感谢使用
Promise.all()
从承诺列表生成可等待的承诺:


这将同时执行所有承诺,并在所有承诺完成后恢复,返回响应列表。

您需要使用异步函数才能完成映射

let fillPestTables = crops.map(async function (crop, index) => {
  let tableBody = await getTableBody(crop, index);
  $(pestTables).append(tableBody);
});
以下是解决方案:

const exportPdf = async () => {
      let crops = <?=json_encode($crops)?>;
      let pestTables;

      let fillPestTables = crops.map(crop, index) => {
        await getTableBody(crop, index).then(res => $(pestTables).append(res););
      });

      console.log(pestTables);

    }
const exportPdf=async()=>{
让作物=;
让我们一起吃饭;
让fillPestTables=crops.map(crops,index)=>{
等待getTableBody(裁剪,索引)。然后(res=>$(pestTables)。追加(res);
});
console.log(pestTables);
}

您的代码有很多问题,您不应该将JSON放在javascript中,需要额外转义
。地图中缺少括号,且箭头函数未标记为
async
。出现了什么错误?谢谢!完全按照需要做
let fillPestTables = crops.map(async function (crop, index) => {
  let tableBody = await getTableBody(crop, index);
  $(pestTables).append(tableBody);
});
const exportPdf = async () => {
      let crops = <?=json_encode($crops)?>;
      let pestTables;

      let fillPestTables = crops.map(crop, index) => {
        await getTableBody(crop, index).then(res => $(pestTables).append(res););
      });

      console.log(pestTables);

    }