/ / Como obter o valor de retorno de chamada em node.js em uma variável - node.js

Como obter o valor de retorno de chamada em node.js em uma variável - node.js

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 № 1

Você 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.