は、次のことを考えてみましょう:Node.js:ストリーム内から非同期関数を使用できますか?
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
:ここではドキュメントです( 'データ'、機能)。あなたは何か気になることをしたい場合は、ストリームを一時停止し、あなたのものを行い、次にストリームを再開することができます。 –
@DaveBriandあなたはあなたがこれを行うことができないと断言しているのですか、それともあなたはその質問を再投稿していますか? :) – Fergie
2つの引数関数をデータストリームイベントに渡すことは絶対にできません。ただし、データイベントでストリームを一時停止し、非同期処理を行い、処理が完了したらストリームを再開できます。 –