我最近开始在服务器端(节点js)编写javascript,我有一个非常简单的麻烦,我无法解决:S
我想下载一个txt文件,并将其保存为字符串变量。这是我的尝试:
var consensus;
http.get('random/url/consensus.txt' , function(res) {
res.on('data', function (chunk) {
consensus = ('BODY: ' + chunk);});
});
console.log(consensus)
当我运行脚本时,它说"共识"是未定义的,但当我将consensus = ('BODY: ' + chunk);});
此行更改为此console.log('BODY: ' + chunk);});
时,它会打印出我想要保存为字符串的字符串(文件)。哦,在我忘记提及之前,我想找到一个只有标准库的解决方案。
答案 0 :(得分:0)
你的console.log是回调的外部,因此在回调发生之前启动呼叫后立即调用它。
尝试做这样的事情:(我对事件名称不太确定)
var req = http.get(......) //rest of code stays the same
req.on('end', function() {console.log(consensus);});
我认为它应该可以解决你的问题。
并尝试阅读有关nodeJS的异步性质的更多信息。