async 关键字
放在函数声明之前,生成一个异步函数,保证函数的返回值为 promise
async function hello() { return "Hello" };
hello();
将 async 关键字加到函数申明中,可以告诉它们返回的是 promise,而不是直接返回值
避免了同步函数为支持使用 await 带来的任何潜在开销
在函数声明为 async 时,JavaScript引擎会添加必要的处理以优化程序
await 关键字
await 只在异步函数里面才起作用。它可以放在任何异步的,基于 promise 的函数之前。它会暂停代码在该行上,直到 promise 完成,然后返回结果值。在暂停的同时,其他正在等待执行的代码就有机会执行了。
function takeLongTime() {
return new Promise(resolve => {
setTimeout(() => resolve("long_time_value"), 1000);
});
}
async function test() {
const v = await takeLongTime();
console.log(v);
}
test();