function getSomething(n) {
return new Promise(resolve => {
// 模拟1s后返回数据
setTimeout(() => resolve(222), 1000);
});
}
async function doit(){
const r=await getSomething();
console.log('r:',r)
return r;
}
b=doit(); // 先输出一个 Promise 对象,然后输出 r:222
c=await doit(); // 先输出 r:222 ,然后输出 222
如果调用函数时不用await,函数内部的await不生效,依然走异步。
如果调用函数时用await,函数里await Promise的返回值会直接把Promise的resolve的返回值拎出来。