【发布时间】:2020-10-02 16:59:15
【问题描述】:
processImage() 是一个异步处理图像的函数。
uploadImage()是一个异步上传图片的函数。
它们都返回 Promise。
sizes 是长度为 4 的数组。
图片应在处理完毕后上传。单一尺寸的上传和处理不能同时进行。
我想要做的是一个接一个地立即启动所有 4 个处理/上传作业,并让它们一起异步执行。 4 个都完成后,我执行一些其他代码。
由于我将异步函数作为参数传递给映射,其中的await 关键字是否会暂停执行,直到第一张图像的处理/上传完成?在这种情况下,这将成为同步执行。我不明白这里到底发生了什么。如果这段代码确实是同步的,我该如何让它异步呢?
var responses = await Promise.all(sizes.map(async function (size) {
let processedBuffer = await processImage(buffer, size);
let response = await uploadImage(processedBuffer.toString('base64'));
return response;
}));
//some other code
【问题讨论】:
标签: javascript async-await es6-promise