Async/Await 就是一个自执行的 generate 函数。利用 generate 函数的特性把异步的代码写成“同步”的形式
function requestA() { return new Promise(resolve => { setTimeout(() => { resolve({ age: 20 }); }, 1000 * 2); }); } async function getData() { console.log('数据加载第一步'); let result = await requestA(); console.log('数据加载第二步'); return result; } getData().then(res => { console.log('数据请求完毕', res); });
首先打印
// 数据加载第一步
过了 2 秒后打印
// 数据加载第二步
// 数据请求完毕 { age: 20 }
参考资料
第 9 题:Async/Await 如何通过同步的方式实现异步