捕获回调函数引发的错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了捕获回调函数引发的错误相关的知识,希望对你有一定的参考价值。
我已将异步函数与回调相结合,因为我需要异步函数来等待另一个异步函数。回调抛出了我需要捕获的错误。如何捕获异步函数调用的回调中抛出的错误? someFunction是异步的,下面代码中的try-catch块不起作用
let someAsyncFunction = async () => {
return true
}
let someFunction = async (callback)=> {
await someAsyncFunction()
callback()
}
try {
someFunction(()=> {
throw ("Some error")
console.log("Callback has been called")
});
} catch (error) {
console.log(error)
}
这是实际的代码。抛出错误,第一个函数运行良好。我试图让第二个功能做同样的事情。
async facebook(req, res, next) {
throw ({status:405, message:"Method not allowed"})
}
async login(req, res, next) {
let __promisifiedPassportAuthentication = function () {
return new Promise((resolve, reject) => {
passport.authenticate('local', (err, user, info) => {
if(err)reject(err)
if(user === false || user === null)reject({message:"No such user"})
})(req, res, next)
})
}
__promisifiedPassportAuthentication().catch((err)=>{
//How do I get this error to be thrown by the (parent) function login?
// Promise.reject(err)
throw(err)
})
}
和护照策略
passport.use( new LocalStrategy({ usernameField: 'email' }, async (email, password, done) => {
let [err, dontcare, care] = [];
let person = {Email: email}
;[err, care] = await to (Familyfe.Person.which(person))
//force err to have some value
err = true
if(err)return done(err);
}));
以上是关于捕获回调函数引发的错误的主要内容,如果未能解决你的问题,请参考以下文章
为啥代码片段在 matplotlib 2.0.2 上运行良好,但在 matplotlib 2.1.0 上引发错误