有点像Promise的变形, 目前还没想到更优雅的写法。
总觉得Generator有点像线程,有中断有唤醒,Generator应该可以模拟多线程时间片的效果。
function async(x, _genObj) {
setTimeout(function() {
_genObj.next(x + x);
}, 100);
}
function* testGen(aa) {
console.log(‘第一步‘);
var re = yield async(aa,genObj);
console.log(‘第二步‘, re);
re = yield async(re,genObj);
console.log(‘第三步‘, re);
re = yield async(re,genObj);
console.log(‘第四步‘, re);
}
var genObj = testGen(2);
genObj.next();
时间: 2024-11-12 11:47:11