我希望了解如何在async await中正确使用setImmediate并处理错误。我编写了以下代码,但我不确定它是否符合最佳实践。
我的Express应用程序中有一个路由。
用户助手类代码
我的Express应用程序中有一个路由。
router.get('/parseinvoice', async (req, res, next) => {
try {
const parsedInvoiceResponse = await userhelper.getParseInVoiceList();
res.json({parsedInvoiceResponse})
} catch (error) {
res.json({});
}
});
用户助手类代码
var userhelper = {};
const fs = require('fs'),
path = require('path'),
filePath = path.join(__dirname, './input_user_story_12.txt');
const { promisify } = require('util')
const readFile = promisify(fs.readFile);
userhelper.getParseInVoiceList = async function() {
return new Promise( async (resolve, reject) => {
try {
setImmediate(async function() {
try {
const contents = await readFile(filePath, 'UTF-8');
resolve(contents);
} catch (error) {
reject(error);
}
});
} catch (error) {
reject(error);
}
});
}
module.exports = userhelper;
虽然我已经得到了响应,但是我对 setImmediate 部分 不确定,是否需要多个 try catch。是否有更简洁的方法来编写下面的代码?