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

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 @ 2022-08-01 14:36  Chloe56  阅读(78)  评论(0)    收藏  举报