0
我正在嘗試創建類似於this示例的服務。我的代碼如下:
app.service('Poller', function ($q, $http, $timeout) {
var notification = {};
notification.poll = function (callback, error) {
return $http.get('https://someapi.com').then(function (response) {
if (typeof response.data === 'object') {
if (callback){
callback(response.data);
console.log('tick');
}
} else {
if (error) {
error(response.data);
}
}
$timeout(notification.poll, 10000);
});
}
notification.poll();
return notification;
});
我嘗試使用它在我的控制器是這樣的:
Poller.poll(
function(jsonAPI) {
console.log(jsonAPI);
},
function(error) {
console.log('Error:', error);
}
);
的數據是正確的,但獲取那裏似乎是兩個問題。
- 回調函數只被調用一次,而不是根據$超時。我在回調結束錯誤的服務中添加了條件,因爲沒有它們會引發錯誤
callback is not a function
。當我刷新或更改視圖時,再次調用回調函數。 - $超時似乎每10秒觸發兩次而不是一次。
你爲什麼叫notification.poll()不帶參數? –
我放入的兩個函數不是參數嗎?順便說一句,你的答案完美無缺。 –