我有这两个功能,这是代码示例

var getRangeTime = function(numSerie){
      $http.get("data/tempsgammes.json").then(function(res){
          return $scope.time = res.data[numSerie].temps
    })}

var updateScreen = function() {
      $http.get("http://localhost:5000").then(function(response){
        $scope.numSerie = response.data.refDetail.Num_Serie
        $scope.numTeam = response.data.team
        $scope.t = getRangeTime($scope.numSerie)
        //Rest of code the code
    }


在这里我想做的是:

首先,我调用函数updateScreen()以获取序列号(numSerie),然后根据numSerie的值,将执行另一个函数getRangeTime()以获取时间,然后函数updateScreen()将继续使用getRangeTime()的结果执行。

这里的问题是异步的,我的意思是updateSreen()应该等待getRangeTime()直到她返回所需的值为止,这是一种异步并等待。

我已经尝试过了,但是它没有用,实际上我不知道如何使用它们,我在这里搜索了,我尝试了现有的解决方案,但是效果也不好,我总是不确定。

谁能帮我 ?

最佳答案

这里有点晚了,但是您也可以使用回调(我还没有测试过,但是应该可以):

var updateScreen = function(callback) {
   $http.get("http://localhost:5000").then(function(response){
        $scope.numSerie = response.data.refDetail.Num_Serie
        $scope.numTeam = response.data.team
        $scope.t = getRangeTime($scope.numSerie)
        callback($scope.numSerie);
    }
}

updateScreen(function(numSerie) {
   $http.get("data/tempsgammes.json").then(function(res){
          return $scope.time = res.data[numSerie].temps
    }
})

关于javascript - AngularJs:$ http链接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45788622/

10-10 22:51