我正在关注基于Node.js的音乐播放器的一些示例代码。这个例子只是一直在播放器上播放的命令行上传递的一些文件:运行代码的功能就好像它在另一个范围内运行
for (var i = 2; i < process.argv.length; i += 1) {
batch.push(openFileFn(process.argv[i]));
}
我想改变它,这样的代码只玩的东西时,另一事件发生时运行。我试图通过将上面的代码包装在一个函数中并从我的事件处理程序调用它来完成此操作。不幸的是,没有任何反应,当我这样做的:
function play() {
for (var i = 2; i < process.argv.length; i += 1) {
batch.push(openFileFn(process.argv[i]));
}
}
play(); // Works
function eventHandeler() {
// Other code
play(); // Doesn't work!
}
我已验证的播放功能得到通过我的调试器设置断点调用,所以我能想到的唯一的另一件事是,函数是莫名其妙被改变的范围弄乱了。我如何在所需范围内拨打play()
?
这里有一个GitHub的要点与所有代码:https://gist.github.com/anonymous/01f9572e73cdf3103e7b
对于'batch'你可能是对的,但我不能在以后声明它,因为它也有附加到它的事件监听器。我会在github的要点上发布代码。 – BonsaiOak 2014-09-30 06:24:10