だから私はes6 js約束:.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()コールバックを呼び出しますか?そのコールバックに次のエラー(エラー)が渡されますか? これは、次のような別の方法で呼び出します(null、エラー)?
私は上記のコードをasync/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(next);' '(.create(reason){return next(reason);});' –