В настоящее время я пытаюсь реализовать систему, в которой вызван обратный вызов из прослушивателя событий (код ниже). Когда я запускаю код, я получаю сообщение об ошибке «callback is not a function», который, как я полагаю, связан с тем, что обратный вызов переменной не определяется исполнителем событий.Обратный вызов Javascript в прослушивании событий
function playSound(no, callback) {
var noOfSounds = sound().length;
if(no == "random" || no == undefined) {
act("There are "+noOfSounds+" Sounds");
var randomNo = Math.floor(Math.random() * noOfSounds);
act("Will use no."+randomNo);
playSound(randomNo);
} else {
sound()[no].addEventListener("ended", function() {
callback();
});
sound()[no].play();
}}
Вы не передали функцию обратного вызова при вызове 'playSound (randomNo);' – Tushar
Извините, я должен уточнить, я вызываю функцию playSound из другой функции при возникновении этой ошибки, я не беспокоюсь о вызове изнутри (я добавлю некоторую логику позже, чтобы определить, прошел ли обратный вызов). TL; DR: эта ошибка все еще возникает, если передается обратный вызов. – user3060689
вам нужно показать нам больше кода. Например, когда вы вызываете функцию playound и функцию обратного вызова, которую вы передаете. – Unlockedluca