首页 > 其他 > 详细

Generator(生成器)和async await

时间:2020-12-09 20:58:40      阅读:30      评论:0      收藏:0      [点我收藏+]

1、generator

generator是ES6实现的标准。
generator 函数返回一个遍历器对象
遍历器对象 每次调用next 方法 返回 有着value 和done 两个属性的对象
generator 函数 yield 后面的表达式即为 返回对象 value属性的值

 

 
技术分享图片
image.png

 

generator 函数返回一个遍历器
遍历器对象每执行一次next() 都只执行了generator 函数内部部分代码,遇到yield本次执行就结束了。

2、async/await

async/await是ES7实现的标准。

    • async函数是Generator函数的语法糖,将Generator的星号换成async将yield换成await,async函数比Generator函数更好用.。async 表示函数里有异步操作,await 表示紧跟在后面的表达式需要等待结果。
    • await 只能出现在 async 函数中
    • async 函数返回的是一个 Promise 对象
    • 如果它等到的不是一个 Promise 对象,那 await 表达式的运算结果就是它等到的东西。
      如果它等到的是一个 Promise 对象,await 就会阻塞后面的代码,等着 Promise 对象 resolve或者reject方法,然后得到 resolve的值,作为 await 表达式的运算结果。
    • 一般await都会用try/catch包起来

Generator(生成器)和async await

原文:https://www.cnblogs.com/JesseWeng/p/14110692.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!