它应该加载data.json内容并将其分配给一个称为“数据”的变量,以便可以在管道中的handlebars()函数中使用,以从模板中形成HTML。问题在于Console.log()将其移出fs.ReadFile()回调范围后立即输出“未定义”。如何使“数据”变量保持我在回调函数中设置的值?
当前的呼叫异步运行,因此在您的代码移至下一行时进行工作并进行工作。然后,完成后,它会触发回调。因此,您需要等待该阅读才能完成之前。 tron使用
readFileSync
// Include fs module
const fs = require('fs');
// Calling the readFileSync() method
// to read 'input.txt' file
const data = fs.readFileSync('./input.txt', {encoding:'utf8'});
// Display the file data
console.log(data);
您可以尝试将其包裹在承诺中
let promise = new Promise((resolve , reject)=>{
fs.readFile(file , (err , data)=>{
resolve(data)
})
})
promise.then((data , err)=>{
console.log(data)
})