js中的Generators函数
Posted 叶家伟的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中的Generators函数相关的知识,希望对你有一定的参考价值。
js中的Generators函数
generator一般操作
generator函数的作用就是函数体分段执行,yield表示分隔点 function *test() { console.log(1); yield 1; console.log(2); yield 2; console.log(3); yield 3; } var g = test(); console.log(g.next()) // { value: 1, done: false } console.log(g.return(2)) // { value: 2, done: true },return不执行任何函数体,直接结束函数执行 console.log(g.next()) // { value: undefined, done: true }
捕获异常
function *test() { try { yield 1; yield 2; } catch (error) { console.log(error.message); } } var g = test(); console.log(g.next()) console.log(g.throw(new Error("Error"))) // { value: undefined, done: true } 捕获异常,同时结束函数执行 console.log(g.next())
传递值给generator函数
function *test() { var s; s = yield; console.log(s); s = yield; console.log(s); } var g = test(); g.next(); // 第一次调用next会无视传递的value g.next(1); // 第二次传递value现在才有用
yield代理到其他的generator函数
function *test() { yield 1; yield *other(); } function *other() { yield 2; yield 3; } var g = test(); console.log(g.next()) // 1 console.log(g.next()) // 2 console.log(g.next()) // 3
遍历generator函数
function *test() { yield 1; yield 2; yield 3; } for(let item of test()) { console.log(item); } // 1 2 3
以上是关于js中的Generators函数的主要内容,如果未能解决你的问题,请参考以下文章