По завершеню поиска 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);
});