在您的代码中,finally
无论身份验证是成功还是失败,都将调用被调用的代码。尝试取消对的呼叫finally
。
为什么在then / catch之前调用了您的404代码?因为它不是在finally回调内部,而是在后处理程序中调用。
如果您将这样编码:
finally( () => res.status(400).json({...}) )
将在then / catch之后调用。您的代码使它发生了。在Promise被解决或拒绝之前进行了评估。
看下面的例子
function sendError() {
...
}
getUser()
.then(response => ...)
.catch(err => ... )
.finally( sendError() );
在我的示例中,sendError
始终在getUser()之前调用。您的代码中也是如此。
不过,如果您在的回调中正确执行此操作finally
,则会由于发送响应而抛出错误。
希望可以说清楚
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句