xem xét như sau:Node.js: bạn có thể sử dụng các chức năng không đồng bộ từ bên trong luồng không?
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
Làm thế nào để biết khi nào dòng asyncFunction đã hoàn thành? Có cách nào để sử dụng các chức năng không đồng bộ từ bên trong luồng không?
Tôi không chắc chắn cách dòng sẽ xử lý gọi lại kể từ khi tài liệu không hiển thị hai thông số ở trên ('dữ liệu', chức năng). Nếu bạn muốn làm điều gì đó lạ mắt, bạn có thể tạm dừng luồng, làm công cụ của bạn, sau đó tiếp tục luồng. –
@DaveBriand bạn đang nói categorically rằng bạn không thể làm điều này, hoặc là bạn nghỉ ngơi câu hỏi? :) – Fergie
Categorically bạn không thể chuyển một hàm hai đối số cho sự kiện luồng dữ liệu. Tuy nhiên, bạn có thể tạm dừng luồng trên sự kiện dữ liệu, thực hiện một số xử lý không đồng bộ, sau đó tiếp tục luồng khi quá trình xử lý của bạn hoàn tất. –