Процедура завершения после сохранения для jsPDF - PullRequest
0 голосов
/ 19 октября 2018

Мы используем jsPDF jsDF для вывода PDF-файлов с нашей веб-страницы.Мы хотели бы иметь индикатор выполнения во время создания документа, но мы обнаружили, что, поскольку для метода «сохранения» нет подпрограммы завершения, наш модуль никогда не появляется в Firefox.Пошагово просматривая код, я вижу, что хотя спиннер вызывается, наш код для отмены спиннера вызывается сразу после вызова метода сохранения, поэтому спиннер закрывается, как только он вызывается.Был фактически запрос на добавление обработчика завершения в подпрограмму сохранения, но он так и не был добавлен, поэтому я прошу здесь узнать, не сталкивался ли кто-нибудь с этой проблемой или схожим и нашел ли это обходной путь?

Вот код, о котором идет речь:

this._spinner.show();
promises.push(
     new Promise((resolve, reject) => {
      this.getCanvas(el).then( (canvas: any) => {
        let te = tileExport;
        doc.setPage(te.pageIndex + 1);
        doc.addImage(canvas.toDataURL('image/png'), 'PNG', te.X, te.Y, te.W  , te.H );
        resolve(true);

      });
    })
  );
});

Promise.all(promises).then(() => {
  doc.save('filename.pdf'); 
  this._spinner.clear();
});

}

Хотя в документации не говорится, так или иначе, вызов сохранения, скорее всего, является асинхронным, поэтому метод clear будетпозвони сразу уволив прядильщика.Любые идеи будут с благодарностью.

...