3 回答

TA貢獻1725條經(jīng)驗 獲得超8個贊
首先明確的是a執(zhí)行了。
barObj.next(); //輸出test
barObj.next('a'); //a給了第一個yield,但是沒有使用
barObj.next('b'); //b給了第二yield,并輸出1. b

TA貢獻1818條經(jīng)驗 獲得超11個贊
自己又梳理了一下
我們可以把
barObj.next();
barObj.next('a');
barObj.next('b');
改為如下的形式,這樣看起來更加的方便
console.log(barObj.next(), barObj.next('a'), barObj.next('b'));
上面的代碼應(yīng)該這么來讀
首先要明白 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 }
添加回答
舉報