Async/await - 数据未定义

Async/await - data is undefined

尝试将 CSV 转换为 JSON,然后下载图像,然后将其上传到 S3 存储桶,然后更新当前 JSON,最后生成新的 CSV。但是代码不会等待异步函数完成所以 const data = await handle_image_URLs(csv); returns as undefined.

//parse CSV - extract images, then upload to S3 bucket
const handle_image_URLs = file => {
  new Promise((resolve, reject) => {
    fs.createReadStream(file)
      .pipe(csv_to_json())
      .on("data", async data => {
        // console.log("data", data);
        try {
          if (is_image_url(data.image_link)) {
            console.log("data.image_link", data.image_link);
            image_buffer = await download_image(data.image_link);
            name = uuid() + ".jpg";
            const location = await upload_to_S3(image_buffer, name);
            //Inject back updated image url
            data.image_link = location.Location;
            //New generated data goes into an array
            results.push(data);
          }
          // console.log("RESULT", results);
          resolve(results);
        } catch (error) {
          reject(error);
        }
      });
  });
};

快速处理 csv 上传

app.post("/", upload.single("file"), async (req, res) => {
  const file = req.file;
  const csv = `./uploads/${file.originalname}`;
  const data = await handle_image_URLs(csv);
  console.log("DATA", data);
  // await json_to_csv_converter.json2csv(data, json2csvCallback);
  res.status(200).json({ message: "working " });
});

return new promise((resolve, reject)) 更新为 return new promise( async (resolve, reject)) 它应该可以工作