1
mongoDBでfindByIdAndRemove
を呼び出すメソッドがあります。 IDを見つけられず、DBから削除できない場合は、エラーを投げたい。ノードプロミス拒否がキャッチを入力しない
削除ダッシュボード機能:
deleteDashboard = (id) => {
return Dashboard.findByIdAndRemove(id).exec((err, dashboard) => {
if (err) return errorHandler.handle('dashboardService', err);
if (dashboard === null) return Promise.reject({ status: 404, message: 'not found' });
return Promise.resolve(dashboard);
});
};
ファンクションコール:データベースに存在しないidを持つdashboardService.deleteDashboard
を呼び出して、なぜ私は理解していない
return dashboardService.deleteDashboard(id)
.then(dashboard => res.status(200).json(dashboard))
.catch(error => res.status(error.status).json(error));
、キャッチを入力していません。デバッグ中にif(dashboard === null)
の状態になり、Promise.reject()
が呼び出されたが、catch
の代わりにthen
と入力されていることを確認した。
'reject'の代わりに' throw'を使うと、ほとんどの場合動作します – wrangler