介绍
async是Generator的语法糖,不同的是generator中的方法需要通过next()调用才会执行,async中的方法会自动执行
使用
- 需要搭配await方法,类似于generator函数中的yield
{
async function fn() {
await console.log("111");
await console.log("222");
await console.log("333");
}
fn();
}
- 使异步方法同步执行
- await 等待的是Promise 对象或者其它值(没有特殊限定)
{
function fn1() {
return new Promise((res) => {
setTimeout(() => {
console.log("任务1...");
res();
}, 1000);
});
}
function fn2() {
return new Promise((res) => {
setTimeout(() => {
console.log("任务2...");
res();
}, 1000);
});
}
function fn3() {
return new Promise((res) => {
setTimeout(() => {
console.log("任务3...");
res();
}, 1000);
});
}
async function ca(fn1, fn2, fn3) {
await fn1();
await fn2();
await fn3();
}
ca(fn1, fn2, fn3);
}