在日常编码中,async/await明显比promise写起来方便。但是当遇到多个可以同时执行的异步时,就必须使用promise.all,这时候把每个异步函数包装成promise又很麻烦,这时候就要结合起来。之所以能够结合,是因为async/await本身就是promise的语法糖,他就是promise,所以可以直接这样写:
const a = async (x) => {};
const b = async (x, y) => {};
const c = async (x, y, z) => {};
async function all () {
const [resultA, resultB, resultC] = await Promise.all([
a(x),
b(x, y),
c(x, y, z)
]);
console.log(resultA);
console.log(resultB);
console.log(resultC);
}
这样,我们即能使用promise.all提高性能,又能方便的话使用async/await语法,美滋滋。