javascript - 如何使箭头功能异步?
问题描述
我有以下代码检查文件是否存在,如果存在,则解析其中的 JSON 数据:
fs.access(dbPath, (err) => {
if (err) throw err
else{
console.log('Database found. Processing data.');
dbObj = processDatabaseFile(dbPath);
console.log('checkonstartup: '+dbObj);
return;
}
});
这是 processDatabaseFile:
function processDatabaseFile(path){
fs.readFile(path, (err, data) =>{
if (err) throw err;
let jsonData = JSON.parse(data);
return jsonData;
})
}
我的问题是当 fs.access 函数被调用时,它比返回更快processDatabaseFile(dbPath)
返回。例如。我想让它使用异步等待,但我不知道该怎么做。
尝试放置async (err) => { ...
声明然后使用
dbObj = await processDatabaseFile(dbPath)
,但它会在 if-else 和分号周围出现错误,并且缺少括号。
反馈表示赞赏。
编辑:关于添加异步等待的错误。我使用的是 VSCode,结果发现 ESLint 和 JSHint 相互冲突。
解决方案
您可以使用以下语法使粗箭头函数异步。
const asyncFunc = async () => {
const result = await someAsyncFunc();
}
推荐阅读
- excel - 如果 Excel 中的一行缺少数据,则标记记录的多行
- java - 两个版本之间的 Android Studio 引用问题
- r - R中是否有组合名称的功能?
- mysql - MySQL 结果未定义
- c# - 将特定的 Run 添加到 Windows.UI.Xaml.Controls.TextBlock 后,如何以编程方式访问它?
- python - scikit learn train_test_split for loop
- laravel - Paypal 使用 Paypal API 与 laravel 6 集成
- r - 在 R 中为 gvlma 使用 Map 函数
- swift - 如何在我的 swift 项目中拥有 2 个同名文件?
- flutter - Flutter showModalBottomSheet 隐藏在 CupertinoTabBar 后面