esse é o meu código.
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);
});
}
Nesse caso, se eu precisar desse valor de retorno dessa função no teste de variável, significa como conseguir isso?
Nesse console.log (teste) diz indefinido. uma vez que é uma função de retorno de chamada. Como obtê-lo corretamente?
Respostas:
1 para resposta № 1Você realmente não pode esperar obter um comportamento síncrono (como obter um valor de retorno) com o código assíncrono. Você pode usar fs.readFileSync
para evitar o aspecto assíncrono ou apenas usar seu valor dentro de seu retorno de chamada.
Caso contrário, async módulo pode ajudá-lo.