Generator 函数语法
2019-12-05 09:56:20 0 举报
AI智能生成
登录查看完整内容
ES6 - 思维导图
作者其他创作
大纲/内容
Generator 函数语法
Generator.prototype.throw
1、可在函数体外抛出错误由Generator函数体内catch错误2、throw方法被捕获以后,会附带执行下一条yield表达式3、旦 Generator 执行过程中抛出错误 且没有被内部捕获,就不会再执行下去了4、throw方法抛出的错误要被内部捕获,前提是必须至少执行过一次next方法
Generator.prototype.return()
return方法,可以返回给定的值,并且终结遍历 Generator 函数
g.return('foo') // { value: \"foo\
try...finally
如果 Generator 函数内部有try...finally代码块,且正在执行try代码块,那么return方法会导致立刻进入finally代码块,执行完以后,整个函数才会结束
yield* 表达式
用来在一个 Generator 函数里面执行另一个 Generator 函数
另一个Generator中如果有返回return则会返回值给父Generator
1、yield* [\"a\
Generator 函数的this
概述
1、Generator 函数是一个状态机,封装了多个内部状态2、执行 Generator 函数会返回一个遍历器对象 Generator 函数除了状态机,还是一个遍历器对象生成函数
特征
1、function关键字与函数名之间有一个星号2、函数体内部使用yield表达式
yield表达式
只有调用next方法才会遍历下一个内部状态yield表达式就是暂停标志
1、yield表达式只能用在 Generator 函数里面2、yield表达式如果用在另一个表达式之中, 必须放在圆括号里面3、yield表达式用作函数参数或放在赋值表达式的右边, 可以不加括号
与 Iterator 接口的关系
由于 Generator 函数就是遍历器生成函数,因此可以把 Generator 赋值给对象的Symbol.iterator属性,从而使得该对象具有 Iterator 接口。
next 方法
next方法可以带一个参数,该参数就会被当作上一个yield表达式的返回值
总结:实际上调用next方法,是计算yield后面表达式的值,再调next,才执行上一个yield所在语句,因此参数的值可以给到上一个语句使用
实现斐波那契数列
控制流程管理实现多任务多步骤
// 循环所有任务和步骤for (var step of iterateJobs(jobs)){ console.log(step.id);}
0 条评论
回复 删除
下一页