async 及 await

   ES7 中的 async 及 await就是 Generator 以及 Promise 的语法糖,内部的实现原理还是原来的,只不过是在写法上有所改变,这些实现一些异步任务写起来更像是执行同步任务。

  一个函数前加上 async关键字,就将该函数返回一个 Promiseasync 直接将返回值使用 Promise.resolve() 进行包裹(与 then 处理效果相同)。await 只能配套 async 使用,await 内部实现了 generatorawait 就是 generator 加上 Promise 的语法糖,且内部实现了自动执行 generator

 为什么要使用async和await

  1.有内置执行器:async 函数自带执行器。也就是说,async 函数的执行,与普通函数一模一样,只要一行。

  2.更清晰的语义: async 和 await,比起星号和 yield,语义更清楚了。async 表示函数里有异步操作,await 表示紧跟在后面的表达式需要等待结果。

  

posted on 2020-02-22 21:24  ccc_pear  阅读(68)  评论(0编辑  收藏  举报