我正在尝试重构catch块,因为这对于多个请求来说是很常见的。但是它抛出了UnhandledPromiseRejectionWarning: ReferenceError: next没有定义。
这是一个代码片段。
user.save()
.then(user => {
})
.catch(handleError)
const handleError = err => {
if (!err.statusCode) {
err.statusCode = 500;
}
next(err)
}但是,如果我这样做,它就能正常工作
user.save()
.then(user => {
})
.catch(err => {
if (!err.statusCode) {
err.statusCode = 500;
}
next(err)
})发布于 2020-05-13 21:56:13
const未被提升,因此您需要将其移至使用位置上方:
const errHandler = console.log("Hello world");
new Promise((res, reject) => reject()).then(errHandler);
而不是:
new Promise((res, reject) => reject()).then(errHandler);
const errHandler = console.log("Hello world");
发布于 2020-05-13 21:58:40
我认为
user.save().then(user => {})
.catch(err => handleError(err))
...发布于 2020-05-13 22:04:01
您可以将您的处理程序放在上面,如下所示
const handleError = err => {
if (!err.statusCode) {
err.statusCode = 500;
}
next(err)
}
user.save()
.then(user => {
})
.catch(handleError)或者,您可以像这样重写处理程序
function handleError(err) {
if (!err.statusCode) {
err.statusCode = 500;
}
next(err)
}https://stackoverflow.com/questions/61776452
复制相似问题