我有一个带有音频文件的数组,可以一个接一个地播放.我正在使用一个javascript播放器,播放音频并在完成后提供回调.
for (i = 0; i < audioFiles.length; i++) { PlayAudio(audioFiles[i], function(){ alert('complete file #' + i); }); }
但我现在的问题是,如何逐一做到这一点.上面的代码片段将启动多个音频文件并将它们并行播放.什么是最好的解决方案,等到回调被触发?
有很多解决方案.等到回调火灾似乎是一个很好的解决方案.
function playAudioFile(index) { PlaidAudio(audioFiles[index], function () { var next = index + 1; if (next < audioFiles.length) { playAudioFile(index+1); } }); } function playAudioFiles() { playAudioFile(0); }
边注:
如果您正在寻找一种更通用的方式来串行运行任务,您应该在这里,这里或这里查看承诺(尽管最后一篇文章仅适用于AngularJS).