${yield}
是如何执行的
我在学习 Generator
的时候看到一段不错的代码,自己改了改不知道如何去读,希望有人能解答一下,如下:
function* bar() {
console.log('one');
console.log('two');
console.log('three');
yield console.log('test');
console.log(`1. ${yield}`);
console.log(`2. ${yield}`);
return 'result';
}
let barObj = bar();
barObj.next();
barObj.next('a');
barObj.next('b');
返回的结果为:
one
two
three
test
1. b
- 第一次 next 的时候应该走到了
yield console.log('test')
- 第二次传了一个
a
这个时候程序似乎没有执行
你需要知道next传值与yield接收值并不是按顺序对应的,应该是:
另外,你可以在后面多调用两个next()看输出:
输出: