我正在關注基於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