promise.all with循环仍然在node.js中处于待处理状态

问题描述 投票:0回答:1

此应用程序的功能是上传多张图片,图片上传API每次只能上传一张图片。上传多张图片时,尝试循环图片并按顺序一张一张上传。

这是示例代码。

let urls =   Promise.all(
   _.map(files, async function (file) {
    let url = await minioService.uploadFile( file.originalname, file.path);
    fs.unlinkSync(file.path);
    return url;
  })
);
console.log('upload success ',urls );

由于上传API-minioService.uploadFile是异步等待的,所以使用Promise.all,但是Promise.all的返回结果仍然是pending。

upload success  Promise { <pending> }

我将如何尝试解决这个问题

node.js async-await promise
1个回答
0
投票

Promise.all
还需要等待。您也可以使用原生
.map
功能

let urls = await Promise.all(
  files.map(async function (file) {
    let url = await minioService.uploadFile(file.originalname, file.path);
    fs.unlinkSync(file.path);
    return url;
  })
);

console.log('Upload success', urls);
© www.soinside.com 2019 - 2024. All rights reserved.