如何等待http响应分配值?

时间:2020-05-20 14:39:42

标签: angularjs

我正在尝试根据从$ http GET请求获得的变量在函数外部执行代码 块,但我正在努力实现这一目标。

$scope.myBooleanVariable = $http.get("url...");

if ($scope.myBooleanVariable) { // undefined
//perform something that must be outside of a function
}

这是我尝试做的一个基本示例,但是http请求是异步的,因此if情况始终是不确定的(falsy)。有什么优雅的方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:0)

您可以定义一个带有成功/错误回调的promise处理程序,以等待响应。在内部函数中,您可以从外部访问变量。

在Angular.js中,您可以这样做:

$scope.myValue = null;

$http.get("url...").$promise.then(function(response) {
  $scope.myValue = response;
  console.log(response);
  // do your logic, myValue is now defined
});