我試圖在Javascript中實現pdf字數統計。我遇到了使用承諾的pdf.js。在返回計數之前是否有辦法等到腳本完成?我知道這違背了諾言的想法,但其他的js pdf閱讀器有時會產生一堆亂碼或者什麼都不會返回。在目前形式的功能總是返回0與pdf.js承諾的問題
function countWords(pdfUrl){
var pdf = PDFJS.getDocument(pdfUrl);
var count = 0;
pdf.then(function(pdf) {
var maxPages = pdf.pdfInfo.numPages;
for (var j = 1; j <= maxPages; j++) {
var page = pdf.getPage(j);
var txt = "";
page.then(function(page) {
var textContent = page.getTextContent();
textContent.then(function(page){
for(var i=0;i<page.items.length;i++){
txtadd = page.items[i].str
txt += txtadd.replace(/[^a-zA-Z0-9:;,.?!-() ]/g,'');
}
count = count + txt.split(" ").length;
})
})
}
return count;
});
一個字計數}
你需要反轉的流動,即其需要'count'必須在「然後」,它遵循這一數目的邏輯計算。 – Vasan
我該怎麼做?我是否把這個方法變成一個對象並且在它上面調用「then」?這是我從Spring.io獲得的一些代碼,這是你的意思嗎? var greetingPromise = sayHello(); greetingPromise.then(function(greeting){ console.log(greeting); //'hello world' }); –
就是這樣的。基本上,你的計數方法返回一個Promise(而不是計數本身),計數已解決('resolve(count)')。接下來,你爲返回的promise添加一個.then塊,並在then塊中執行count。 – Vasan