我需要看一個檔案夾,我將檔案寫入其中。添加新檔案時,我想知道它是哪個檔案,然后將它回傳到我的應用程式中的其他地方,我嘗試使用 fs.watch() 和 chokidar 并且它可以作業。我的問題是,我似乎無法回傳添加的檔案,它總是以“未定義”的形式出現。我試圖找到一種方法將“資料”傳遞到外面并將其回傳到那里,但我不能
const readFromFile = () => {
console.log("waiting for new message...")
fs.watch('./db', (eventType, filename) => {
if (filename) {
fs.readFile(`./db/${filename}`, 'utf-8', (err, data) => {
if (err) throw err;
//console.log(data); <-- prints new file added
return data; <-- returns undefined
});
}});
}
我需要從應用程式的另一部分訪問添加的檔案,以便我可以進一步處理它。
const file = readFromFile();
console.log(file); <-- undefined
有人可以建議我需要做的任何重構嗎?
uj5u.com熱心網友回復:
您可以提供在讀取檔案時呼叫的回呼函式:
const readFromFile = (cb) => {
fs.watch('./db', (eventType, filename) => {
if (filename) {
fs.readFile(`./db/${filename}`, 'utf-8', (err, data) => {
if (err) throw err;
cb(data);
});
}});
}
然后像這樣使用它:
readFromFile((data) => console.log(data));
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/350390.html
