Generator
1、执行Generator函数会返回一个遍历器对象。该函数并不执行,返回的也不是函数运行结果,需要通过next方法,使得指针移向下一个状态。 (由 * , yield 构成,通常伴随next()) yield语句就是暂停标记。
2、yield语句不能用在普通函数中,forEach的方法参数是一个普通函数
3、for...of循环会自动调用遍历器的next方法,带有迭代器方法的数据结构都有此功能(类似:解构函数、Array.from())
4、yield函数的优点:惰性求值
promise
1、所谓promise就是一个对象,用于传递异步操作的消息。promise对象是一个构造函数。then方法返回的是一个新的Promise实例。
2、promise方法: Promise.all,Promise.race,Promise.reject,Promise.resolve,Promise.prototype.done,Promise.prototype.finally。
异步函数
1、Thunk可用于Generator函数的自动流程管理,接收和交还程序的执行权。
2、co模块本质就是Thunk+Promise,co函数接收Generator函数作为参数,返回一个Promise对象。
3、async函数就是Generator函数的语法糖,不需要通过next()才能恢复程序的执行,它内置执行器。
网友评论