考虑以下:
var asyncFunction = function(data, callback) {
doAsyncyThing(function(data){
// do some stuff
return callback(err)
})
}
fs.createReadStream('eupmc_lite_metadata_2016_04_15.json')
.pipe(JSONstream.parse())
.on('data', asyncFunction) // <- how to let asyncFunction complete before continuing
流如何知道asyncFunction完成的时间?有什么方法可以从流中使用异步函数吗?
查看转换流。它们使您能够在块上运行异步代码,然后在完成后调用回调。这是文档:https : //nodejs.org/api/stream.html#stream_transform_transform_chunk_encoding_callback
作为一个简单的示例,您可以执行以下操作:
const Transform = require('stream').Transform
class WorkerThing extends Transform {
_transform(chunk, encoding, cb) {
asyncFunction(chunk, cb)
}
}
const workerThing = new WorkerThing()
fs.createReadStream('eupmc_lite_metadata_2016_04_15.json')
.pipe(JSONstream.parse())
.pipe(workerThing)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句