gpt4 book ai didi

javascript - 从 Promise 返回数据

转载 作者:行者123 更新时间:2023-11-30 14:58:00 25 4
gpt4 key购买 nike

我的主要目标是使用 PDF.js 并将解析后的 PDF 数据发送到前端。 PDF.js 库致力于 promise 并按页码从文件返回数据。这就是我的问题所在。我不太熟悉 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() 信息推送到一个数组并将该数组作为响应发送,但我知道我这样做是错误的。在这种情况下,如何使循环与 promises 一起正常工作,有什么想法吗?

最佳答案

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

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

关于javascript - 从 Promise 返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46953709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com