1
所以,我有以下es6 js promise:什麼是.catch(回調)等價於?
router.param('username', function (req, res, next, username)
{
User.findOne({username: username}).then(function (user)
{
if (!user)
{
return res.sendStatus(404);
}
req.profile = user;
return next();
}).catch(next);
});
我的問題這個小碼這部分.catch(next)
會是什麼實際上做?它會基本上調用next()回調嗎?它會傳入任何錯誤到該回調中,即下一個(錯誤)? 或者它會以不同的方式調用它,比如next(null,error)?
我嘗試轉換上面的代碼,以異步/ AWAIT,所以將下面的代碼做同樣的事情上面的代碼?
router.param('username', async function (req, res, next, username)
{
try
{
let user = await User.findOne({username: username});
if (!user)
{
return res.sendStatus(404);
}
req.profile = user;
return next();
}
catch(error)
{
next(error);
}
});
是的,您的轉換是準確的。將以錯誤作爲唯一參數調用next。 – Ryan
太棒了。感謝您向我確認。您可以參考回答這個問題,我會接受你的答案 –
想到.catch(下)的',''爲.catch(函數(原因){返回下一個(原因);});' –