建设网站涉及的技术,常州做网站的公司有哪些,wordpress国主题,巩义网站建设定制yield 的基本用法
yield 用于在生成器函数中暂停函数执行#xff0c;并返回一个值给外部调用者。当生成器再次被调用时#xff0c;会从暂停的地方继续执行。
示例#xff1a;
function* simpleGenerator() {yield 1;yield 2;yield 3;
}const gen simpleGenerator();cons…yield 的基本用法
yield 用于在生成器函数中暂停函数执行并返回一个值给外部调用者。当生成器再次被调用时会从暂停的地方继续执行。
示例
function* simpleGenerator() {yield 1;yield 2;yield 3;
}const gen simpleGenerator();console.log(gen.next()); // { value: 1, done: false }
console.log(gen.next()); // { value: 2, done: false }
console.log(gen.next()); // { value: 3, done: false }
console.log(gen.next()); // { value: undefined, done: true }在这个例子中yield 暂停生成器的执行并返回值直到 gen.next() 再次被调用才会继续从上次暂停的位置执行。
yield* 的用法
yield* 用于委托给另一个生成器或可迭代对象例如数组、字符串、其他生成器等。这意味着 yield* 会自动遍历这个可迭代对象并逐个 yield 其值。
示例委托给另一个生成器
function* generatorA() {yield 1;yield 2;
}function* generatorB() {yield* generatorA();yield 3;
}const genB generatorB();console.log(genB.next()); // { value: 1, done: false }
console.log(genB.next()); // { value: 2, done: false }
console.log(genB.next()); // { value: 3, done: false }
console.log(genB.next()); // { value: undefined, done: true }在这个例子中yield* generatorA() 会遍历 generatorA 的所有值相当于
function* generatorB() {yield 1;yield 2;yield 3;
}yield* 委托给其他可迭代对象
除了生成器yield* 还可以委托给其他任何可迭代对象比如数组、字符串等。
示例委托给数组
function* arrayGenerator() {yield* [4, 5, 6];
}const genArray arrayGenerator();console.log(genArray.next()); // { value: 4, done: false }
console.log(genArray.next()); // { value: 5, done: false }
console.log(genArray.next()); // { value: 6, done: false }
console.log(genArray.next()); // { value: undefined, done: true }yield 和 yield* 的区别
yield用于暂停生成器的执行并返回一个值。每次调用 next() 时生成器会从上次暂停的地方继续。 yield*用于将迭代过程委托给另一个生成器或可迭代对象相当于在当前生成器中嵌入了另一个迭代过程。