我有關於異步函數以及函數返回結果後如何發送內容的問題。這是我想要實現的:使用來自異步函數的數據
在節點I中處理GET請求的過程中,讀取文件夾的內容,並返回該文件夾中的文件。接下來,我想遍歷該文件夾中每個文件的統計信息,僅加載在特定時間段內創建的文件,並最終將這些文件中的數據作爲對請求的響應發送。它看起來是這樣的:
array = []
fs.readdir(path, function(err, items) {
items.forEach(function(item) {
fs.stat(path, function(err, stats) {
if (period check) {
array.push(data)
}
})
})
}
res.send(array)
這種做法最終發送一個空數組,我已經看了成這裏似乎是解決方案的承諾,但我不能讓他們在這種情況下工作。使用fs.statSync而不是fs.stat確實有效,但這大大降低了性能,感覺應該可以通過Promises實現,但我不知道如何實現。
有沒有人爲此提供解決方案?
編輯:關於對標記爲重複的問題,我想那裏第一次的答案來解決我的問題,但沒有成功。我的問題有一些嵌套函數和循環,比給出的例子更復雜。
看看異步庫,eachSeries方法 – yBrodsky