2
function times() {
var deferred = $q.defer();
var data = $http.get('https://bus.data.je/latest');
data.success(function(_data) {
deferred.resolve(_data);
});
data.error(function(error) {
deferred.reject(error);
});
return {
all: function() {
return deferred.promise;
},
timetable: function(type) {
_data = deferred.promise;
return _data.filter(function (el) {
el = el[0];
return el.MonitoredVehicleJourney.DirectionRef == type;
});
}
}
}
當任一返回功能查詢,它返回一個包含承諾函數(finally
,catch
和then
),而不是解析值的對象。我該如何解決?AngularJS承諾返回對象,而不是解析值
[避免延遲反模式!](https://stackoverflow.com/questions/23803743/what-is-the-deferred-antipattern-and-how-do-i-avoid-it)提示:所有引用'deferred.promise'可以簡單地被'data'替代。 – Bergi 2014-09-27 19:04:04
您無法同步獲得承諾的分辨率值。承諾仍然是異步的,你所能做的就是從他們那裏獲得另一個承諾。 – Bergi 2014-09-27 19:05:24