[英]Javascript / NodeJs - fs.readFile using callback before file is read
我正在使用Node / JavaScript從磁盤讀取圖像文件,並通過編碼為base64的套接字傳遞該文件。 代碼是可靠的(盡管我確定你們中的一些人會提供更好的編碼方式:)),但是我遇到的問題似乎與在文件被完全讀取之前實現的回調有關(有時)。
我可以通過查找typeof === 'undefined'
來捕獲錯誤,但是一旦拋出該錯誤,我就不能100%
watcher.on('create', function callBack(file){
return readFile(file);
});
function readFile(file){
console.log(file);
fs.readFile(file, function(err, data){
if(err){
console.log(err);
throw err};
io.emit('image', {image: true, buffer: data.toString('base64') });
});
}
收到的錯誤是
{ [Error: EBUSY: resource busy or locked, open 'filename']
errno: -4082,
code: 'EBUSY',
syscall: 'open',
path: 'filename' }
無論如何,有沒有等待/暫停異步操作,直到文件被完全讀取?
您仔細閱讀了手冊之后,只有在讀取文件時才會看到callback
調用。 在您的罐子里,錯誤提示“您的文件已經很忙”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.