我是javascript新手,需要一些帮助
我定义了一个全局变量并在一个块中对其进行了更改,但是在该块之后该变量没有更改,这是怎么回事?
在控制台中,我得到
09:48:40.085信息javascript.0(22123)script.js.Mein_Haus.test2:主要bevor函数调用555 09:48:40.085信息javascript.0(22123)script.js.Mein_Haus.test2:更改555后功能进入块外 09:48:40.085信息javascript.0(22123)script.js.Mein_Haus.test2:函数调用555之后的main 09:48:40.086信息javascript.0(22123)script.js.Mein_Haus.test2:在代码块更改555中 09:48:40.086信息javascript.0(22123)script.js.Mein_Haus.test2:在change111之后处于阻塞状态
var fs = require('fs');
var toWriteListXml = '/home/uwe/bin/out.txt'
var content;
var global = {}
global.storedData = 555
console.log('main bevor function call ' + global.storedData)
LoadData()
console.log('main after function call ' + global.storedData)
function LoadData() {
fs.readFile(toWriteListXml, function read(err, data) {
if (err) {
throw err;
}
content = data
console.log('in block bevor change ' + global.storedData)
global.storedData = 111
console.log('in block after change' + global.storedData)
});
console.log('in function out of block after change ' + global.storedData)
}
答案 0 :(得分:0)
函数read
是一个异步回调。它不会立即执行,而是在文件加载完成后执行。
当您调用console.log('main after function call '
时,尚未执行回调(如您所获得的日志顺序所示),并且尚未设置变量。