Задать вопрос
@rimlin

Как сделать, чтобы код выполнился после завершения setInterval?

Не могу разобраться, как сделать, чтобы код выполнился после завершения setInterval, если только не callback, чего не хочется. Например, так:

function someFunc () {
    var _this = this, interval;

    $.get('/path', data, function (res) {
        _this.output = res;
    });

    interval = setInterval(function () {
        if (_this.output) {
            clearInterval(interval);
        }
    }, 1000);

    return this.output;
}

Или есть другой способ вернуть в значение someFunc () полученную информацию res?
  • Вопрос задан
  • 2415 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
api.jquery.com/jquery.ajax
Читайте про параметр async
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
$.get() - это асинхронный запрос, это значит что выполнение функции someFunc завершится раньше чем выполнится этот участок кода:
function (res) {
    _this.output = res;
}

И в вашем случае функция someFunction будет всегда возвращать undefined
Можно сделать так:
function someFunc () {
    return $.get('/path', data);
}

someFunc().then(function(res){
    тут обработка полученного результата
});


И почитайте тут
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы