簡體   English   中英

如何使用Asyn重構Node.js代碼並避免回調地獄

[英]How to refactor nodejs code using asyn and avoiding callback hell

我對Node還是比較陌生,並且正在嘗試學習如何異步或答應或任何使我的代碼更好的方法。 這是我的代碼的示例

router.post('/delete', function (req, res) {
    var bus_id = req.body.selected[0];
        Bus.remove({_id: bus_id}, function (err) {
            if (err) {
                res.json({status: "error", message: "please enter a valid bus_id"});
            } else {
                User.remove({refid:bus_id},function(err){
                    if (err) {
                        res.json({status: "error", message: "bus user wasn't deleted"});
                        return;
                    } else {
                        res.json({status: "success",message: "bus and bus user were deleted"});
                    }
                });
            }
        });
});

我讀過有關異步和承諾的信息,將其應用於代碼的最佳方法是什么?

我個人會去承諾。 它可能看起來像這樣。

router.post('/delete', function (req, res) {
  var bus_id = req.body.selected[0];

  Bus.remove({_id: bus_id}).exec().then(function(bussRemoved) {
    return User.remove({refid: bus_id}).exec();
  }).then(function(userRemoved) {
    res.json({status: "success",message: "bus and bus user were deleted"});
  }).catch(function (err) {
    res.json({status: "error", message: "please enter a valid bus_id"});
  });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM