async 及 await

Posted cccpear

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 表示紧跟在后面的表达式需要等待结果。

  

以上是关于async 及 await的主要内容,如果未能解决你的问题,请参考以下文章

fetch普通用法及搭配async,await用法小记

async 与 await 线程调用顺序

wepack打包时出错不压缩代码及使用es7(async await)新语法问题

async/await 原理及简单实现

async 及 await

Swift新async/await并发模型中子任务取消不能被其它子任务感知的原因及解决