这是我的代码。
var fs = require('fs')
var test = readafile('file.txt', function(returnValue) {
console.log(returnValue);
test = returnValue;
});
console.log(test);
function readafile(filepath,callback){
var attachment_path = filepath;
fs.readFile(attachment_path, function(err,data){
var attachment_encoded = new Buffer(data, 'binary').toString('base64');
callback(attachment_encoded);
});
}
因为如果我需要在变量测试中返回该函数的值意味着如何实现它?
在那个console.log(测试)中,它表示未定义。 因为它是一个回调函数。 如何正确使用?
答案 0 :(得分:1)
你真的不希望用异步代码获得同步行为(比如获取返回值)。您可以使用fs.readFileSync
来避免异步方面或仅在回调中使用您的值
否则,async模块可以帮助您。