async/await 实现原理探析
ES2017
提供的 Async/Await
是标准的异步编程语法,作为异步编程终极解决方案,可以使开发者使用书写同步代码的方式处理异步编程,本文尝试将 Async/Await
编译成为 ES5
的代码后,去理解其内部实现。
代码
const getData = (num) => new Promise(resolve => setTimeout(() => resolve("data"), num))
async function test() {
const data = await getData(1000)
console.log('data: ', data);
const data2 = await getData(2000)
console.log('data2: ', data2);
return 'success'
}
// 1秒后打印data 再过2秒打印data2 最后打印success
test().then(res => console.log(res)