js多个await语句并行的调用方法
async function waitfor(timeout) {
let sleep = await new Promise((resolve) => {
setTimeout(() => {
console.log(timeout, "ms时间到");
resolve();
}, timeout);
});
}
function fetchName(err) {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log("数据请求结束");
resolve("lujs");
}, 3000);
});
}
(async function () {
console.log("开始执行:", new Date());
await waitfor(2000);
await fetchName();
console.log("结束执行:", new Date());
})();
(async function () {
console.log("开始执行:", new Date());
let waitforFun = waitfor(2000);
let fetchNameFun = fetchName();
await waitforFun;
await fetchNameFun;
console.log("结束执行:", new Date());
})();
(async function () {
console.log("开始执行:", new Date());
var [res1, res] = await Promise.all([waitfor(2000), fetchName()]);
console.log("结束执行:", new Date());
})();
(async function () {
console.log("开始执行:", new Date());
var [res1, res] = await Promise.allSettled([waitfor(2000), fetchName()]);
console.log("结束执行:", new Date());
})();