簡體   English   中英

Javascript / NodeJs-fs.readFile在讀取文件之前使用回調

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM