影响callbackvariables是不好的做法吗?

asynchronousNode函数fs.stat()为例。 如果我需要在一个文件上使用fs.stat() ,那么稍后fs.stat() ,结果会被遮蔽。

 fs.stat(file, function(err, stats) { fs.stat(file, function(err, stats) { }); }); 

errvariables以及statsvariables被隐藏起来 – 如果我不会在第二个callback中使用第一个callback,那么这个问题是否会发生? 重命名第二个callbackvariables是否更好?

是否覆盖这些variables,一次或多次对性能有什么影响?

       

网上收集的解决方案 "影响callbackvariables是不好的做法吗?"

问题的意见,但我会说是的 – 不好的做法。 无论如何,这里有两个问题

  • 对于下一个需要处理这个代码的人(可能是你)可能会感到困惑。

  • 在将来某个时候,您可能需要访问外部值来提供一些新的function(例如,要确保两个文件对象具有相同的types?)。 做出这种改变将需要对整个代码块进行烦人且容易出错的编辑。

现在使用不同的名称以防止问题。

是的,这是不好的做法。 取决于开发人员查看它可以得到多么糟糕。 如果我有这样的事情,首先想到的就是在我脑海中stream行起来

为什么他把errstats传递给这个callback?

 fs.stat(file, function(err, stats) { \\ \\ \\ \\ fs.stat(file, function(err, stats) { }); }); 

在像现在一样在多个相同function的实例中工作时。 你必须确保所有的variables都可以被独立访问。

除非你确定一个variables或构造不再被使用,那么你可以重新使用它。 但是,您必须在有用的评论中提及这一点,以确保其他开发人员能够理解这一点。


更新:

callback函数中的这些variables有一个范围限制,所以它们不会影响函数声明之外。

一个有效的例子是:

  fs.stat(file, function(err, stats) { }); //Another similar functions somewhere with same varialbes fs.stat(file2, function(err, stats) { });