从Promise返回数据

时间:2017-10-26 11:56:31

标签: javascript node.js express promise

我的主要目标是使用PDF.js并将解析后的PDF数据发送到前端。 PDF.js库适用于promises并按页码返回文件中的数据。这就是我的问题所在。我不太熟悉promises并在其中创建循环来返回数据。 我的代码目前看起来像这样:

string '1c25e41b-f5b2-4484-b5b8-7d45ac2dd427' (length=36)

我正在尝试将page.getTextContent()信息推送到数组并将数组作为响应发送,但我知道我这样做是错误的。 在这种情况下,如何使循环正常工作的任何想法?

1 个答案:

答案 0 :(得分:2)

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

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);
                    }
                })