我正在使用 Node.js 的“pdf-text”模块将 pdf 转换为字符串数组,然后从中获取特定元素。但问题是,只有当我在回调中时,我才能访问数据“ block ”。我想将它存储在一些全局变量中,以便我可以在不同的文件中使用它。我曾尝试在函数内部将数组的元素存储在变量中,但没有成功。这是代码:
var pdfText = require('pdf-text');
var pathToPdf = "PDF FILE NAME";
var fs = require('fs');
var buffer = fs.readFileSync(pathToPdf);
var output;
pdfText(buffer, function(err, chunks){
if (err){
console.dir(err);
return;
}
console.dir(chunks);
output = chunks;
}
console.dir(output);
附言我是 Node.js 和 JavaScript 的新手,非常感谢您的帮助。
最佳答案
当调用回调时,输出变量只会设置“ block ”内容。
顺便说一句,你需要添加“);”在 pdfText 函数调用的回调函数声明之后。
var pdfText = require('pdf-text');
var pathToPdf = "PDF FILE NAME";
var fs = require('fs');
var buffer = fs.readFileSync(pathToPdf);
var output;
pdfText(buffer, function(err, chunks){
if (err){
console.log(err);
return;
}
otherFunction(); // undefined
output = chunks;
otherFunction(); // chunks content
});
function otherFunction() {
console.log(output);
}
console.log(output); // undefined
关于js回调:https://www.tutorialspoint.com/nodejs/nodejs_callbacks_concept.htm
关于javascript - 从回调中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44298196/