await只有等待函数返回时,才会异步。
直接例子更说明问题:
async function sayHello( ){
console.log("this is function sayHello");
// 自动构造Promise对象
return "123456";
}
// 非async函数
let sayHelloPlain = () =>{ return "AABBB"; }
async function sayHi( ){
console.log("this is function sayHi");
// tempValue0 是Promise对象
let tempValue0 = sayHello( );
console.log(tempValue0);
// 不是等待函数返回,await不起作用。即此语句不阻塞
let temp1 = await tempValue0;
// 输出的是Promise("123456");
console.log("await variable:" +temp1);
// 阻塞
tempValue0 = await sayHello( );
console.log(tempValue0);
// 不阻塞
console.log(sayHelloPlain());
// 阻塞
let tempValue = await sayHelloPlain();
console.log("await result:" + tempValue);
}
console.log( sayHi() ); // 输出 Promise { <pending> }