$ http get request promise自己调用节点api两次

时间:2017-10-31 16:52:25

标签: javascript angularjs node.js angular-promise connection-timeout

我有一个用c ++编写的子进程(.exe文件),它是我的节点API的子进程,后者又由angular get API调用。 现在问题是这个角度API调用节点API两次而没有得到第一次调用的响应,并在后台启动子进程(.exe文件)两次。 我已经实现了角度承诺来克服浏览器超时,它仍然会调用节点api两次。欢迎任何形式的帮助。

这是带有承诺的anularjs get请求。

    angular.module('fileUpload', ['ngFileUpload'])
.controller('imgController',function(Upload,$window,$scope,$http){

$scope.btnDisabled = false;
$scope.analyse = "Analyse";

$scope.analyseFunc = function(){
$scope.btnDisabled = true;
$scope.analyse = "Analysing...";    
$http.get('/api/callingExe').then(function(res){

            console.log(res);
            if(res.data == "ok"){
              $scope.btnDisabled = false;
              $scope.analyse = "Analyse";
              $scope.msg = "COMPLETED!!";

            } else{
               $scope.btnDisabled = false;
              $scope.analyse = "Analyse";
              $scope.msg = "Internal Server Error : " + res.status + "Please Try again later !";
            }

  }).catch(function(error){

    console.log("StatusCode: 503, Data: " + error); 
  })

};// analyseFunc


});//controller

这是由angularjs调用的节点api,并进一步启动子进程。

app.get('/api/callingExe', function(req,res,next){ 
  console.log("processing...");
  exec(file, [args],function(err, data) {  
        console.log('err   ' + err)
        console.log('data  ' + data.toString()); 
    }).on('exit', (code) => {
  console.log(`child process exited with code ${code}`);
     //something
res.end("ok");
});//exe on exit

});//api callingExe

更新 我点击一下后禁用按钮。同样有趣的是,一旦api被调用,然后复制的一个在一段时间后开火(约2分钟)。

这是我在终端上获得的,exe文件被执行两次。如果有人有任何想法,请指导我。

  

...处理
  GET / api / callingExe - - ms - -
  处理...

0 个答案:

没有答案