我在多个对象方法上使用了多个相同的try / catch测试。因此,我想创建try/catch
方法来重新获得我的代码,但不会返回错误。
例如:
@autobind
async forgottenPassword(req, res) {
return this.callService(
res,
async () => await companyService.forgottenPassword(req.body.formData)
);
}
callService(res, func) {
try {
func();
} catch (error) {
res.statusMessage = error.message;
res.status(error.statusCode);
} finally {
res.end();
}
}
我的catch
从未被称为:/
有人知道我做错了吗?
谢谢!
答案 0 :(得分:1)
您需要制作自己的callService async
,并在那里也使用await
。
@autobind
async forgottenPassword(req, res) {
return this.callService(
res,
async () => await companyService.forgottenPassword(req.body.formData)
);
}
async callService(res, func) {
try {
await func();
} catch (error) {
res.statusMessage = error.message;
res.status(error.statusCode);
} finally {
res.end();
}
}