【发布时间】:2014-11-24 00:41:43
【问题描述】:
我正在使用 PDF.js 从 PDF 中提取文本内容,接下来我将使用它进行更多处理,为此,
var complete=0;
var full_text="";
var PDF_render = PDFJS.getDocument("x.pdf").then(function(pdf) {
var page_text = {};
for (i = 1; i <= pdf.numPages; i++){
pdf.getPage(i).then( function(page){
var n = page.pageNumber;
page.getTextContent().then( function(textContent){
var page_text_part = "";
textContent.items.forEach(function (textItem){
page_text_part += textItem.str;
page_text_part += " ";
});
page_text[n] = page_text_part + "\n\n";
++complete;
if (complete == pdf.numPages){
for( var j = 1; j <= pdf.numPages; j++)
full_text += page_text[j];
}
});
});
}
});
问题是 PDF.js 返回承诺并且它们是异步执行的,但是我需要对返回的文本执行一些后期处理。为此,我需要等待承诺完全执行,然后才能继续。如何实现这一目标?请帮忙。
【问题讨论】:
-
这是您的第 13 个 问题。到目前为止,您应该在不被询问的情况下合理地格式化内容,在预览区域检查结果,然后单击“发布问题”按钮。
-
原生 JavaScript 承诺不公开同步检查 API,您很少需要一个。您可以改为使用
.then添加一个将在代码完成时运行的处理程序。如果你要格式化你的代码,我会发布一个答案,所以请这样做。 -
我试图修复格式但语法不正确,请您自己修复大括号
-
@BenjaminGruenbaum, T.J. Crowder 对于格式问题,我很抱歉。修复。非常感谢未定义
标签: javascript promise pdf.js