该园用来记录个人的学习内容,有些杂乱,谅解~嘿嘿~

Chloe

自学前端的小菜鸟一枚呀~
记录学习的知识

es6新特性 - Generator

一、定义

  1. Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同

  2. 执行 Generator 函数会返回一个遍历器对象,可以依次遍历 Generator 函数内部的每一个状态

二、特征

  1. function关键字与函数名之间有一个星号

  2. 函数体内部使用yield表达式,定义不同的内部状态

三、异步解决方案

  1. 回调函数:所谓回调函数,就是把任务的第二段单独写在一个函数里面,等到重新执行这个任务的时候,再调用这个函数

  2. Promise:Promise就是为了解决回调地狱而产生的,将回调函数的嵌套,改成链式调用

  3. generator:yield表达式可以暂停函数执行,next方法用于恢复函数执行,这使得Generator函数非常适合将异步任务同步化

  4. async/await:将上面Generator函数改成async/await形式,更为简洁,语义化更强了

  5. 区别:

    • promise和async/await是专门用于处理异步操作的

    • Generator并不是为异步而设计出来的,它还有其他功能(对象迭代、控制输出、部署Interator接口...)

    • promise编写代码相比Generator、async更为复杂化,且可读性也稍差

    • Generator、async需要与promise对象搭配处理异步情况

    • async实质是Generator的语法糖,相当于会自动执行Generator函数

    • async使用上更为简洁,将异步代码以同步的形式进行编写,是处理异步编程的最终方案

posted @   Chloe56  阅读(74)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示