【发布时间】:2017-03-30 21:05:01
【问题描述】:
我是 ES6 和 Promise 的新手。我正在尝试 pdf.js 将 pdf 文件的所有页面中的文本提取到字符串数组中。提取完成后,我想以某种方式解析数组。说pdf文件(通过typedarray正确传递)有4页面,我的代码是:
let str = [];
PDFJS.getDocument(typedarray).then(function(pdf) {
for(let i = 1; i <= pdf.numPages; i++) {
pdf.getPage(i).then(function(page) {
page.getTextContent().then(function(textContent) {
for(let j = 0; j < textContent.items.length; j++) {
str.push(textContent.items[j].str);
}
parse(str);
});
});
}
});
它设法工作,但是,当然,问题是我的 parse 函数被称为 4 次。我只想在所有 4 页提取完成后致电parse。
【问题讨论】:
-
类似于stackoverflow.com/a/40494019/1765767 -- 使用 Promise.all 收集页面承诺,不要忘记链接 then 的。
-
@async5 它有效!我首先尝试了this,并对其稍作修改,但您提供的答案看起来更正确。请回复它作为答案,以便我可以接受。谢谢!
标签: javascript pdf callback es6-promise pdf.js