从回调中获取数据

bet*_*123 6 javascript callback node.js

我正在使用 Node.js 的“pdf-text”模块将 pdf 转换为字符串数组,然后从中获取特定元素。但问题是,只有当我在回调中时,我才能访问数据“块”。我想将它存储在某个全局变量中,以便我可以在不同的文件中使用它。我尝试过在函数内将数组的元素存储在变量内,但没有成功。这是代码:

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);
Run Code Online (Sandbox Code Playgroud)

PS 我对 Node.js 和 JavaScript 相当陌生,非常感谢您的帮助。

gnu*_*uns 4

当调用回调时,输出变量只会设置为“块”内容。

顺便说一句,您需要添加“);” 在 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
Run Code Online (Sandbox Code Playgroud)

关于js回调:https://www.tutorialspoint.com/nodejs/nodejs_callbacks_concept.htm