我想知道 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}} 始终执行下一个中间件,并且只有在整个级联中间件都得到解决时才会关闭数据库连接)。
处理这个问题的最佳方法是什么?这里有没有可以遵循的模式?
预先感谢您的见解和想法。