async 及 await
Posted cccpear
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了async 及 await相关的知识,希望对你有一定的参考价值。
ES7
中的 async
及 await
就是 Generator
以及 Promise
的语法糖,内部的实现原理还是原来的,只不过是在写法上有所改变,这些实现一些异步任务写起来更像是执行同步任务。
一个函数前加上 async
关键字,就将该函数返回一个 Promise
,async
直接将返回值使用 Promise.resolve()
进行包裹(与 then 处理效果相同)。await
只能配套 async
使用,await
内部实现了 generator
,await
就是 generator
加上 Promise
的语法糖,且内部实现了自动执行 generator
。
为什么要使用async和await
1.有内置执行器:async 函数自带执行器。也就是说,async 函数的执行,与普通函数一模一样,只要一行。
2.更清晰的语义: async 和 await,比起星号和 yield,语义更清楚了。async 表示函数里有异步操作,await 表示紧跟在后面的表达式需要等待结果。
以上是关于async 及 await的主要内容,如果未能解决你的问题,请参考以下文章