为什么我的网络应用程序停止响应后会有几个$ http请求?

时间:2014-09-09 02:25:21

标签: javascript node.js angularjs

我正在创建一个有队列的小型网络应用,我输入的队列代码如下:

角:

 $scope.leaveQueue = function() {
     $http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
     $http.post('/user/queue/leave')
     .success(function(data) {
        if (data.hasOwnProperty('success')) {
          $route.reload(); 
          return $scope.user.inQueue = false;
        };
     });
  }

  $scope.enterQueue = function() {
    $http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
    $http.post('/user/queue/enter', $('#enterQueue').serialize())
    .success(function(data) {
       if (data.hasOwnProperty('success')) {
         $route.reload(); 
         return $scope.user.inQueue = true;
       }
    });
  }

我用Node处理所述队列的后端是这样的:

router.route('/queue/enter')
  .post(function(req, res, next) {
    if (req.user.isLoggedIn) {
      req.app.get('pg').connect(req.app.get('conString'), function(err, client, done) {
         console.log(req.user.user_name, req.body.game, req.body.mode);
         client.query("INSERT INTO queue (user_name, user_game, user_mode, created_on) VALUES ($1, $2, $3, $4)",
                      [req.user.user_name, req.body.game, req.body.mode, new Date()], function(err, results) {
          if (err) { return res.json({'error': err}) };
          return res.json({'success': 'Entered Queue Successfully'});
        });
      }); 
    };
  });

router.route('/queue/leave')
  .post(function(req, res, nex) {
     if (req.user.isLoggedIn) {
      req.app.get('pg').connect(req.app.get('conString'), function(err, client, done) {
        if (err) { return res.json({'error':err}) };
          client.query("DELETE FROM queue WHERE user_name = $1", [req.user.user_name], function(err, results) {
             if (err) { return res.json({ 'error': err}) };
             return res.json({'success': results});
          });
      });
     };
  });

我的问题是,如果我多次进入和离开队列,我的请求开始变得无限pending并且不会解决,直到我重新启动node app.js我不知道为什么这发生在我身上,一切都回复了一个错误或者没有错误,所以我不确定为什么它只是悬挂,然后在重启后工作正常。

我不确定是什么导致这种情况,我是Angular的新手,我不确定我是否错误地使用$http。任何信息都很好。谢谢。 enter image description here

0 个答案:

没有答案