0

这是我的代码。

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(test) 中它说未定义。因为它是一个回调函数。如何正确获取?

4

1 回答 1

1

您不能真正期望使用异步代码获得同步行为(例如获得返回值)。您可以使用fs.readFileSync来避免异步方面,或者只在回调中使用您的值。
否则异步模块可以帮助你。

于 2013-04-09T09:43:08.043 回答