我一直在寻找并寻找无处不在的例子,以了解如何使它正常工作。我试过使用$ q.all(),它不起作用。我似乎无法承诺正常工作,或者我没有正确访问它们。我正在进行一次API调用来检索有关电影的信息,并且我想让它们按发布日期排序。最简单的方法是按照我制作的顺序保持通话。我按发布日期排列电影ID,并按照该阵列顺序调用它们。然后我想将数据从调用中推送到新的数组。但它并不总是按照正确的顺序进行。有人可能会告诉我我可能做错了什么吗?
$scope.movies = [
{url:"tt3470600", group:"m",youtube:"Vso5o11LuGU", showtimes: "times1"},
{url:"tt3521164", group:"m",youtube:"iAmI1ExVqt4", showtimes: "times2"}
];
$scope.imdb = function() {
var promises = [];
for(var i = 0; i < $scope.movies.length; i++) {
var movie = $scope.movies[i];
var options = {trailer: movie.youtube, times: $scope.times[movie.showtimes]};
var promise = $http.get('http://www.omdbapi.com/?i=' + movie.url);
promise.times = options;
promises.push(promise);
};
return $q.all(promises);
};
var x = $scope.imdb();
console.log(x);
所返回什么是对象d
与$$state
的关键。我很想保持订单绝望,因为我回来的时间有一个日期选择,我想继续下令。
你正在进行异步调用来获取数据。每次通话完成后可以不同。一旦所有承诺完成,您想要做的就是对结果进行排序。 –