考慮以下幾點: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已完成?有沒有什麼方法可以在流內使用異步函數?
我不知道流將如何處理回調,因爲文件沒有顯示在兩個參數('數據',功能)。如果你確實想要做一些奇特的事情,你可以暫停流,做你的東西,然後恢復流。 –
@DaveBriand你是否斷言你不能這樣做,還是你重申了這個問題? :) – Fergie
絕對不能將兩個參數函數傳遞給數據流事件。但是,您可以暫停數據事件的流,進行一些異步處理,然後在處理完成時恢復流。 –