我无法在 HTTP.get 函数中实现我的 promise 。当我尝试 console.log 输出时,我得到的只是 Promise 函数?
我有兴趣获取我的 api 提供的事件数组。
eventApp.factory('LoadEvents', function($http, $q) {
var LoadEvents = function() {
this.events = [];
this.busy = false;
this.after = '';
};
LoadEvents.prototype.nextPage = function() {
if (this.busy) return;
this.busy = true;
var defer = $q.defer();
$http.get('URL inserted here').then(function(response){
defer.resolve(response.data);
});
this.events = this.events.concat(defer.promise);
console.log(this.events);
};
这应该是一个非常基本的 promise ,但我不明白为什么我无法接收数组而不是整个 promise 函数?
最佳答案
通过事件数组(即 this.event
),如果你想表示 Promise 数组,那么它应该是这样的
this.events = this.events.concat([defer.promise]);
或 this.events = this.events.push(defer.promise)
然后使用 $q.all(this.events).then(...)
来解决所有问题。
关于javascript - Angular $HTTP 和 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25325181/