【发布时间】:2016-08-21 19:58:53
【问题描述】:
我最近开始使用Q.spawn 函数来运行产生承诺的生成器。这在尚未支持流的浏览器中运行良好,但在节点的情况下我们有流。如果您在生成器函数中使用流,并且希望在编写器流完成后产生,那么您的代码就变得不那么干净了。
Q.spawn(function* () {
yield new Promise(resolve => {
let fromStream = fs.createReadStream('x.txt');
let toStream = fs.createWriteStream('y.txt');
toStream.on('end', () => resolve());
fromStream.pipe(toStream);
});
});
它可以工作,但是一旦我开始处理大量流,代码就会变得非常难看。这可以像下面的sn-p一样简单吗?。
someGeneratorFuncRunner(function* () {
yield fs.createReadStream('x.txt')
.pipe(fs.createWriteStream('y.txt'));
});
【问题讨论】:
标签: ecmascript-6 generator q es6-promise