await 后面可以跟任何的JS 表达式。虽然说 await 可以等很多类型的东西,但是它最主要的意图是用来等待 Promise 对象的状态被 resolved。
如果await后面是 promise对象会造成异步函数停止执行并且等待 promise 的解决,
如果await后面是 正常的表达式则立即执行。
1.后面跟Promise对象
function sleep(second) {return new Promise((resolve, reject) => {setTimeout(() => {resolve(' enough sleep~');}, second);})
}
async function awaitDemo() {let result = await sleep(2000);console.log("123")console.log(result);
}
awaitDemo();// 两秒之后会被打印出来 '123'和' enough sleep~'
2.后面跟正常的表达式
function sleep(second) {setTimeout(() => {console.log(' enough sleep~');}, second);}
async function awaitDemo() {let result = await sleep(2000);console.log("123");
}
awaitDemo();//立即输出123 两秒后输出' enough sleep~'