У меня есть массив с аудио-файлами, чтобы играть все по одному. Я использую javascript-плеер, который будет воспроизводить звук и обеспечивает обратный вызов по завершении.Подождите, пока обратный вызов
for (i = 0; i < audioFiles.length; i++) {
PlayAudio(audioFiles[i], function(){
alert('complete file #' + i);
});
}
Но моя проблема сейчас, как это сделать по одному. Вышеприведенный фрагмент начнет несколько аудио-файлов и будет воспроизводить их параллельно. Какое оптимальное решение - подождать, пока не будет активирован обратный вызов?
HTTP: //blog.slaks.net/2015-01-04/async-method-patterns/ – SLaks
«Не создавать функции в цикле» - одна из ошибок, возникающих при вводе кода через http: // jshint. ком /. – Tomalak
Вы не можете «ждать» в JS, если вы имеете в виду «выполнение блока». Единственное, что вы можете сделать, это поместить код для следующих действий (здесь: загрузить следующий файл) в самом обратном вызове. Вместо цикла используйте рекурсивный подход. – Bergi