如何修复 json 文件读取代码 NodeJS Electron
How do I fix json file reading code NodeJS Electron
我正在编写一些代码来读取和解析我的 JSON,但由于某些未知原因,无法在函数外部访问已解析的数据。我的第一个控制台日志将 return 我的 JSON 数据,但最后一个不会。
有什么方法可以让 JSON 数据可以从脚本中的任何位置访问?
JavaScript:
const fs = require("fs/promises");
...
let continueCourses;
const getCurrentCourses = async () => {
try {
await fs.access("./data/user-courses.json");
} catch {
continueCourses = { courses: [] };
}
if (!continueCourses) {
continueCourses = JSON.parse(await fs.readFile("./data/user-courses.json", "utf8"));
console.log(continueCourses);
}
};
getCurrentCourses()
console.log(continueCourses)
JSON:
{
"courses": [
{
"id": "0",
"title": "Getting Started with Hirigana",
"desc": "Intro"
},
{
"id": "1",
"title": "Getting Started with Katakana",
"desc": "Intro"
}
]
}
您正在调用一个异步函数,因此您需要告诉 java 脚本等待结果。许多语法之一是
let continueCourses;
const getCurrentCourses = async () => {
try {
await fs.access("./data/user-courses.json");
} catch {
continueCourses = { courses: [] };
}
if (!continueCourses) {
continueCourses = JSON.parse(await fs.readFile("./data/user-courses.json", "utf8"));
console.log(continueCourses);
}
// Return after finishing
return continueCourses;
};
getCurrentCourses().then((result)=>{
console.log(result);
}).catch(err=>{
console.error('error found while running', error)
});
我正在编写一些代码来读取和解析我的 JSON,但由于某些未知原因,无法在函数外部访问已解析的数据。我的第一个控制台日志将 return 我的 JSON 数据,但最后一个不会。
有什么方法可以让 JSON 数据可以从脚本中的任何位置访问?
JavaScript:
const fs = require("fs/promises");
...
let continueCourses;
const getCurrentCourses = async () => {
try {
await fs.access("./data/user-courses.json");
} catch {
continueCourses = { courses: [] };
}
if (!continueCourses) {
continueCourses = JSON.parse(await fs.readFile("./data/user-courses.json", "utf8"));
console.log(continueCourses);
}
};
getCurrentCourses()
console.log(continueCourses)
JSON:
{
"courses": [
{
"id": "0",
"title": "Getting Started with Hirigana",
"desc": "Intro"
},
{
"id": "1",
"title": "Getting Started with Katakana",
"desc": "Intro"
}
]
}
您正在调用一个异步函数,因此您需要告诉 java 脚本等待结果。许多语法之一是
let continueCourses;
const getCurrentCourses = async () => {
try {
await fs.access("./data/user-courses.json");
} catch {
continueCourses = { courses: [] };
}
if (!continueCourses) {
continueCourses = JSON.parse(await fs.readFile("./data/user-courses.json", "utf8"));
console.log(continueCourses);
}
// Return after finishing
return continueCourses;
};
getCurrentCourses().then((result)=>{
console.log(result);
}).catch(err=>{
console.error('error found while running', error)
});