首先要了解 promise :promise
代码一,了解 async 与 promise 的区别:
async function helloAsync(){
return "helloAsync";
}
console.log(helloAsync()) // Promise {<resolved>: "helloAsync"}
helloAsync().then(v=>{
console.log(v); // helloAsync
})
无论 async
函数返回什么值(包括 undefined
),都会被自动包装为一个 已解决(fulfilled)的 Promise。这时会跳到 .then() 里进行执行。
async function foo() {
return 42; // 等效于 return Promise.resolve(42)
}
const p = foo(); // p 是 Promise {<fulfilled>: 42}
console.log("p: ", p)
const res = await foo();
console.log("res: ", res)
代码二,了解 await 的使用:
function testAwait(){
return new Promise((resolve) => {
setTimeout(function(){
console.log("testAwait");
resolve();
}, 1000);
});
}
async function helloAsync(){
await testAwait();
console.log("helloAsync");
}
helloAsync();
3 秒后打印: