gpt4 book ai didi

angularjs - 如何让函数等待异步调用完成?

转载 作者:行者123 更新时间:2023-12-03 08:25:32 25 4
gpt4 key购买 nike

我有一个 angularjs 服务来获取我的 json 数据。

// Controller.js file
$scope.data=Events.query();

$scope.getEventtypes = function(){
angular.forEach($scope.data,function(value, key){
var arr = [];
if(key==$scope.month+$scope.year) {
for(var i=0; i<key.length; i++) {
arr.push(value[i].type);
$scope.eventtypes=arr.unique();
}
}
});
};

在尝试访问 value[i].type 时,它会抛出错误无法读取属性 type of undefined。我知道这是因为异步调用。

//i want to add success function like this
$http.get('').success(function(data) {
....
});

谁能帮帮我??如果你建议做一些比这更有效的事情会更好。谢谢

最佳答案

我使用异步 $http 服务(使用 jsonp)得到了类似的答案。

基本上你需要:

  • 使用回调或
  • 使用 promise 对象

promise :

var promise = service.getHistoricalDataWithQ($scope.symbol, $scope.startDate, $scope.endDate);

promise.then(function(data) {
$scope.items = data;
});

带有回调:

service.getHistoricalDataWithCallback(function (data) {
$scope.items = data;
}, $scope.symbol, $scope.startDate, $scope.endDate);

查看答案 Angular using $htp and YQL .

见我的jsFiddle .

关于angularjs - 如何让函数等待异步调用完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14017813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com