Я новичок в ES6 и Promise. Я пытаюсь pdf.js извлекать тексты со всех страниц pdf-файла в массив строк. И когда выполняется извлечение, я хочу каким-то образом проанализировать массив. Скажем, PDF-файл (передается через typedarray
правильно) имеет 4
страницы и мой код:как правильно извлечь текст из pdf с помощью pdf.js
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
раз. Я просто хочу позвонить parse
только после того, как все 4-страничное извлечение сделано. Любые советы приветствуются. Прошу пролить свет на меня.
Подобно http://stackoverflow.com/a/40494019/1765767 - собирайте обетования страницы с помощью Promise.all и не забудьте зацепить их. – async5
@ async5 Это работает! Я сначала попробовал [this] (http://stackoverflow.com/a/28875245/6153990), и он работал с небольшими изменениями, но ответ, который вы предоставили, выглядит более корректно. Пожалуйста, ответьте на него как ответ, чтобы я мог его принять. Спасибо! –