我一直在想,除了使用bind()
方法,是否有更好的方法将变量传递到Node.js的回调函数中。
下面是一个例子:
var fs = require('fs');
for(var i = 0; i < 100; i++) {
fs.writeFile(i + ".txt", i, function(error) {
fs.stat(this.i + ".txt", function() {
fs.rename(this.i + ".txt", this.i + ".new.txt", function() {
console.log("[" + this.i + "] Done...");
}.bind({ i: this.i }));
}.bind({ i: this.i }));
}.bind({ i: i }));
}
注意到所有的bind()
方法都是通过简单地传递i
的值而一路上升的。
谢谢。
[ undefined ] done...
。 - Justin