javascript yiel代码:
function delay(time) {
return new Promise(function (resolve, reject) {
setTimeout(() => {
resolve();
}, time);
});
}
function* output() {
yield delay(500)。then(() => console.log(1));
yield (function () { console.log(2); return ‘aa’ })()
yield delay(200)。then(() => console.log(3));
yield (function () { console.log(4); return ‘aa’ })()
}
function runGen(gen, next) {
const item = gen.next();
if (item.done) return;
const { value } = item
if (value instanceof Promise) {
value.then(() => runGen(gen))
} else {
runGen(gen)
}
}
runGen(output());
如需转载,请注明文章出处和来源网址: