我是新来的异步编程。最近我发现了一个我不太了解的案例。在这个例子中:在readFile中访问外部范围变量
var username = "abc";
fs.readFile(filePath, { encoding: 'utf-8' }, function (err, oldUsername) {
console.log(username); // Print xyz
if (username == oldUsername)
// do something, since username is now 'xyz', result failed!
});
username = "xyz";
我想比较oldUsername我的文件到用户名(ABC),但在控制台打印“XYZ”这样的结果失败了。
如何获得未修改的值用户名?
更改回调里面的用户名似乎是你孤独的选择。或者创建一个tmp变量来保存你的值 – mfrachet
@Skahrz这让我停留了半个小时,你刚刚为我指出了这一点。我只是在回调中更改用户名。似乎没有更好的选择。 – NewJedi