我们正在使用jsPDF jsDF从我们的网页输出PDF。我们希望在创建文档时有一个进度条,但是我们发现,由于没有“保存”方法的完成例程,因此我们的条幅图永远不会出现在Firefox中。逐步查看代码,我看到尽管调用了Spinner,但是在调用save方法后,立即关闭了用于取消Spinner的代码,因此在调用Spinner后就立即将其关闭。确实有一个功能请求将完成处理程序添加到保存例程中,但从未添加过,因此我在这里询问是否有人遇到此问题或类似问题并找到了解决方法?
这是有问题的代码:
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();
});
}
尽管文档中没有说任何一种方式,但是save调用很可能是异步调用,因此将立即调用clear方法,以消除微调框。任何想法将不胜感激。