等待GET请求具有某个变量

时间:2017-02-18 00:43:35

标签: javascript angularjs http asynchronous get

我正在使用POST从我的应用程序远程提交作业。 POST请求返回一个作业ID,我可以使用GET请求来检查。的状态。

<script src="https://d3js.org/d3.v4.js"></script>
<script src="https://d3js.org/d3-scale-chromatic.v1.js"></script>

唯一的问题是我想在作业完成后分配变量,而不是刚刚开始时分配变量。有没有办法做到这一点?

如果完成,结果如下:

$http.get('http://localhost:8090/jobs/'+id).then(function successCallback(results) { 
    jobResults = results; 
}

除了状态消息之外,如果没有完成,唯一的区别是“结果”变量不存在。

2 个答案:

答案 0 :(得分:1)

我认为您的问题是您正试图在错误的地方找到解决方案。我所看到的是你的工作正在后端处理,所以你想在前端更新它,但你没有做到这一点所需的信息。 因此,您需要创建一个检查作业状态的进程,以便在您想要它时分配变量,在这种情况下,当作业完成时。例如,你可以使用setInterval来完成它。

var jobs = [];
setInterval(function () {
  for (var i = 0; i < jobs.lenght; i++) {
    checkJobStatus();
  }
});

答案 1 :(得分:-1)

请尝试以下获取网址。
考虑从post请求获得jobId。

$http.get('http://localhost:8090/jobs/:id',{id : jobId}).then(function successCallback(results) { 
    jobResults = results; 
}