Я написал функцию, которая при вызове возвращает только 5, но когда я console.log функция внутри setInterval(), она возвращает именно то, что я ожидаю. Так почему же это не срабатывает при вызове?setInterval() не работает по назначению
function countdown(seconds){
var tick = 0;
setInterval(function() {
if (seconds > tick) {
seconds--;
console.log(seconds); //counts down as expected.
}
}, 1000);
return seconds;
}
console.log(countdown(5)); //returns undefined.
Кроме того, я знаю SetTimeout() является предпочтительным, но когда я выгрузить setInterval не работает. Любая помощь и ясность в этом вопросе были бы весьма полезны.
Поскольку обратный отсчет не возвращает ничего, поэтому он не определен. Что вы ожидаете от входа в систему? – epascarello
1. функция, выполняемая setInterval, запускается асинхронно 2. для того, чтобы console.log регистрировал что-либо, кроме неопределенного, функция должна была бы вернуть что-то 3., поскольку вы редактируете, где вы возвращаете секунды, console.log теперь должен выводить 5 , так что вы должны отредактировать свой вопрос, поскольку он теперь некорректен. –
Да, он возвращает только 5. Извиняется за то, что он не отправил его таким образом, чтобы начать. Я несколько раз общался с ним и забыл добавить это обратно. Мое предположение заключается в том, что он возвращает всего 5, потому что он асинхронен? – London804