从Promise返回数据

我的主要目标是使用PDF.js并将parsing的PDF数据发送到前端。 PDF.js库对承诺进行处理,并通过页码返回文件中的数据。 这是我的问题所在。 我不太熟悉承诺,并且在循环中返回数据。 我的代码目前看起来像这样:

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()信息推送到一个数组,并发送数组作为响应,但我明白,我这样做是错误的方式。 任何想法如何在这种情况下使承诺循环正常工作?

在我看来,你会想要做这样的事情

 var pdf = path.join(__dirname, '../../testoutput.pdf'); pdfJsLib.getDocument(pdf).then(function(doc){ var promises = []; var promiseLimiter ; for(i = 1; i <= doc.numPages; i++){ //promises.push(doc.getPage(i)); var p = doc.getPage(i).then(function(page){ return page.getTextContent(); var response = []; if(i == doc.numPages + 1){ promiseLimiter = promises.length; } }) promises.push(p); } Promise.all(promises).then(function(data){ if(promiseLimiter == doc.numPages){ res.status(200).json(data); } })