【发布时间】:2018-04-07 19:12:04
【问题描述】:
我的主要目标是使用 PDF.js 并将解析后的 PDF 数据发送到前端。 PDF.js 库处理承诺并按页码从文件中返回数据。这就是我的问题所在。我对 Promise 和在其中创建循环以返回数据不是很熟悉。 我目前的代码如下所示:
var pdf = path.join(__dirname, '../../testoutput.pdf');
pdfJsLib.getDocument(pdf).then(function(doc){
var promises = [];
for(i = 1; i <= doc.numPages; i++){
//promises.push(doc.getPage(i));
doc.getPage(i).then(function(page){
promises.push(page.getTextContent());
var response = [];
if(i == doc.numPages + 1){
var promiseLimiter = promises.length;
Promise.all(promises).then(function(data){
response.push(data[0]);
if(promiseLimiter == doc.numPages){
res.status(200).json(response);
}
})
}
})
我正在尝试将 page.getTextContent() 信息推送到数组并将数组作为响应发送,但我知道我这样做是错误的。 在这种情况下,有什么想法可以使循环与 Promise 一起正常工作吗?
【问题讨论】:
-
Promise.all, 必须out of for, whw 已结束且已完成promise arr
-
什么是getTextContext()
-
getTextContext() 是 PDF.js lib 提供的函数,您可以通过它从 pdf 页面中提取文本数据。它会返回有关单词及其位置和样式的数据。来自那里的数据通常看起来像这样:pastebin.com/tT7gSu2a。这也应该用作承诺 page.getTextContent().then(function(content){//do something with content})
标签: javascript node.js express promise