我正在编写一个函数,根据过go 的内容读取JSON文件并返回值.在实际函数内部,我可以向控制台输出我所期望的内容,但是当我将then个输出返回到控制台时,我得到的却是未定义的输出.
我正在使用的JSON文件如下所示:
{
"ECMadrid": "tbd",
"ECParis": "tbd2"
}
我用来读取文件的函数如下所示:
getReferenceNumber(productName){
fs.readFile('./filepath.json', 'utf-8', (err, jsonString) => {
if (err) {
console.log(err)
} else {
try {
const data = JSON.parse(jsonString);
console.log("The reference number before returning is: ", data[productName]);
return data[productName];
} catch (err) {
console.log("Error parsing JSON:", err);
}
}
});
}
我调用测试文件中的函数,如下所示:
let referenceNumber = await jsonHelper.getReferenceNumber("ECMadrid");
await console.log("I got sent: ", referenceNumber);
我希望这两个控制台日志(log)输出相同的结果,但我的输出是这样的(值得注意的是,它首先输出函数调用之后的控制台日志(log),我认为这很奇怪,值得指出):
I got sent: undefined
The reference number before returning is: tbd
我试图弄清楚为什么getReferenceNumber函数正确地将我想要的内容分配给data[ProductName],但却将未定义的内容返回给我实际调用它的类.提前感谢您的反馈
编辑:回答正确,速度快,谢谢!