gpt4 book ai didi

node.js - 将异步等待与 setImmediate 结合使用

转载 作者:太空宇宙 更新时间:2023-11-03 22:05:42 24 4
gpt4 key购买 nike

我想知道如何将 setImmediate 与 async wait 结合使用并正确处理错误。我写了以下代码。但我不确定它是否遵循最佳实践。

我的 Express 应用程序中有一条路线

router.get('/parseinvoice', async (req, res, next) => {
try {
const parsedInvoiceResponse = await userhelper.getParseInVoiceList();
res.json({parsedInvoiceResponse})
} catch (error) {
res.json({});
}
});

userhelper类代码

 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。有什么简洁的方法可以编写下面的代码吗?

最佳答案

try {
setImmediate(async ()=>{
var res = await readFile(filePath, 'UTF-8');
})
} catch(err) {
}

2.

await setImmediate(()=>{
var res = await readFile(filePath, 'UTF-8');
}).catch(){}

3.

try {
await setImmediate(()=>{
await readFile(filePath, 'UTF-8');
}).catch(){}
} catch() {
}
  • 应该将结果返回到 res
  • const res = await setImmediate(()=>{
    return readFile(filePath, 'UTF-8');
    })

    关于node.js - 将异步等待与 setImmediate 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54829367/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com