2013-04-09 56 views
0

這是我的代碼。如何獲得node.js中的回調值變量

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(測試)它說未定義。因爲它是一個回調函數,所以它是 。 如何正確獲取?

回答

1

你不能期望獲得異步代碼的同步行爲(如獲取返回值)。您可以使用fs.readFileSync來避免異步方面的問題,或僅在回調中使用您的值。
否則async模塊可以幫助你。