JavaScript: Try-Catch-Finally with callback (next())

时间:2021-03-19 10:15:11

标签: javascript callback try-catch middleware

我想知道 JavaScript 在 try-catch-finally 构造中处理资源的最佳方式是什么。

function test(next) {
    try {
        console.log('try');
        return next();
    } catch (e) {
        console.log('catch');
        return next(e);
    } finally {
        console.log('finally');
        dbConn.close()
    }
}

上述函数调用的示例输出:

try
// next
finally
// db closing

我试图实现的是必须复制代码(一般而言),特别是此处的 dbConn.close()

由于 next() 的回调在返回或触发 finally 块之前被评估,我可以想象如果多个中间件像这样执行(就像 { {1}} 始终执行下一个中间件,并且只有在整个级联中间件都得到解决时才会关闭数据库连接)。

处理这个问题的最佳方法是什么?这里有没有可以遵循的模式?

预先感谢您的见解和想法。

0 个答案:

没有答案