【发布时间】:2016-09-23 19:01:24
【问题描述】:
我正在使用highland.js 处理文件,使用流读取两个分隔符之间的内容。我还使用async.js 依次运行一系列http 请求。
理想情况下,我想将来自 highland 的输出 x 作为第一个函数传递给 async 系列(链),以便为从流中提取的每个块执行 HTTP 请求。
这可能吗?如果可以,如何实现?
var async = require('async');
var _ = require('highland');
_(fs.createReadStream(files[0], { encoding: 'utf8' }))
.splitBy('-----BEGIN-----\n')
.splitBy('\n-----END-----\n')
.filter(chunk => chunk !== '')
.each(function (x) {
}).done(function () {
async.series([
function(callback) {
setTimeout(function() {
console.log('Task 1');
callback(null, 1);
}, 300);
},
function(callback) {
setTimeout(function() {
console.log('Task 2');
callback(null, 2);
}, 200);
},
], function(error, results) {
console.log(results);
});
});;
【问题讨论】:
-
在这种情况下
done是什么? -
为什么
x没有被传递给javascript的函数? -
donehighlandjs.org/#done 是我工作代码的后遗症,它告诉流处理完成。我可能会删除它。 -
@guest271314 - 你的意思是创建一个函数并调用它来代替 x 并将内容传递给它吗?
-
“理想情况下,我想将输出
x” 在.done()回调中将x传递给async.series
标签: javascript node.js async.js highland.js