yiled 表達式的返回值
function* foo() {
yield new Promise((resolve, reject) => {
resolve();
});
const result = yield console.log(0);
result.then(() => { console.log(2); });
console.log(1);
}
const tt = foo();
const result = tt.next();
console.log(result); //{value: Promise, done: false}
console.log(tt.next());
// 0
//{value: undefined, done: false}
tt.next(result.value);
// 1
// 2
tt.next(); //{value: undefined, done: true}