我一直在尋找並尋找無處不在的例子,以瞭解如何使它正常工作。我試過使用$ 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
的關鍵。我很想保持訂單絕望,因爲我回來的時間有一個日期選擇,我想繼續下令。
你正在進行異步調用來獲取數據。每次通話完成後可以不同。一旦所有承諾完成,您想要做的就是對結果進行排序。 –