es6中yield和yield*有什么区别?

一个*号的区别吗?


qq_花开花谢_0
浏览 1342回答 1
1回答

互换的青春

两者都是返回 iterator 的一个元素,不过yield 的返回值是当作一个元素yield* 的返回值是一个 iterator,会依次返回这个 iterator 中的每个元素举例function* sub() {    for (let i = 65; i < 70; i++) {        yield String.fromCharCode(i);     } }function* main() {    yield "begin";    yield sub();    // 返回的是 sub() 的结果,一个对象     yield "---------";    yield* sub();   // 依次返回 sub() 结果的的每一项     yield "end"; }for (var v of main()) {    console.log(v); }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript