3 回答
TA贡献1725条经验 获得超8个赞
首先明确的是a执行了。
barObj.next(); //输出test
barObj.next('a'); //a给了第一个yield,但是没有使用
barObj.next('b'); //b给了第二yield,并输出1. b
TA贡献1818条经验 获得超11个赞
自己又梳理了一下
我们可以把
barObj.next();
barObj.next('a');
barObj.next('b');
改为如下的形式,这样看起来更加的方便
console.log(barObj.next(), barObj.next('a'), barObj.next('b'));
上面的代码应该这么来读
首先要明白 console.log 的返回值是 undefined
next 1.
console.log('one')...console.log('test');
return { value: unfefined, done: false }
next 2.
yield console.log('test') = 'a';
${ yield undefined } 写括号是为了方便看,其实没有括号
return { value: undefined, done: false }
next 3.
console.log(`1. ${'b'}`);
return { value: undefined, done: false }
添加回答
举报
