@manokhin

Как правильно обработать промис?

По завершеню поиска img должен отпраляться файл на печать, но файл приходит пустым, при первом клике. Выяснилось, что если подождать на последнем шаге промиса, то файл всегда генерируется успешно. Видимо какой-то промис неуспел зарезолвиться, а файл уже отправился.
Как правильно обработать промис?

$printContainer
        .find('img').each(function(){
          var promise = $.Deferred();
          imgPromises.push(promise);
          $(this).on('load', function(){promise.resolve()})
            .on('error', function(){promise.resolve()}); // anyway
        });

      var self = this;
      $.when.apply(null, imgPromises).then(function(){
        self._print($frame, $printContainer, frameWnd, frameDoc);
        self.toggleLoader(false);
      });
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
Чтобы обработать массив промисов нужно использовать Promise.all()
https://developer.mozilla.org/en-US/docs/Web/JavaS...

Не могу понять зачем там $.when
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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