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~'