Согласно документации Angular JS $http
, эта система была исключена из 1.4.3 +
. Итак, я получил помощь от его сообщения , и вы можете попробовать таким образом
app.controller('MainCtrl', function ($scope, $http){
$http({
method: 'GET',
url: 'api/url-api'
}).then(function (success){
},function (error){
});
}
ИЛИ
$http.get('api/url-api').then(successCallback, errorCallback);
function successCallback(response){
//success code
}
function errorCallback(error){
//error code
}
Я предпочитаю второй, который был более гибким для меня.
как просто переписать функцию setTimeout для сортировки пользовательских функций ведения журнала?
, например
var oldTimeout = setTimeout;
window.setTimeout = function(callback, timeout) {
console.log("timeout started");
return oldTimeout(function() {
console.log('timeout finished');
callback();
}, timeout);
}
, может работать?
Мы только что опубликовали пакет, решая эту точную проблему.
npm install time-events-manager
С этим вы можете просмотреть их через timeoutCollection
& amp; intervalCollection
объектов.
Нет, даже спецификация HTML5 (которая является рационализацией поведения HTML 4.01 в текущих браузерах с дополнительными функциями) не указывает способ перечислить доступные обратные вызовы.
Task
, который должен быть помещен внутри Queue
в текущий Event-Loop
, и что «каждая задача, поставленная в очередь на очередь задач цикл событий, определенный этой спецификацией, связан с Document
". Поэтому, хотя специфика того, как это должно быть сделано и где вещи должны находиться, не является явным, если Document
доступен через JavaScript, то, похоже, следует, что Task
должен быть также в силу своей «ассоциации» ; с Document
. Хотя, возможно, я это неправильно интерпретирую?
– aroth
29 April 2011 в 13:01
Вы также можете создать модуль timer manager , который будет отслеживать текущие таймеры и позволит вам получать, добавлять, останавливать и останавливать все таймеры.
var timers = (function() {
//
var timers = []
//
const getIndex = (array, attr, value) => {
for (let i = 0; i < array.length; i += 1) {
if (array[i][attr] === value) {
return i
}
}
return -1
};
// add
const add = (callback, time) => {
var id = setTimeout(() => {
let index = getIndex(timers, 'id', id)
timers.splice(index, 1)
callback()
}, time)
timers.push({
id: id,
time: time,
debug: callback.toString()
})
};
// get all active timers
const all = () => timers
// stop timer by timer id
const stop = (id) => {
if (!isNaN(id)) {
let index = getIndex(timers, 'id', id)
if (index !== -1) {
clearTimeout(timers[index].id)
timers.splice(index, 1)
}
}
};
// stop all timers
const stopAll = () => {
for (let i = 0; i < timers.length; i++) {
clearTimeout(timers[i].id)
}
timers = []
};
return {
add: add,
all: all,
stop: stop,
stopAll: stopAll,
};
})();
//
timers.add(function() {
console.log("timeout 1 fired");
}, 1000)
timers.add(function() {
console.log("timeout 2 wont get fired");
}, 2000)
timers.add(function() {
console.log("timeout 3 fired");
}, 3000)
timers.add(function() {
console.log("timeout 4 fired, timers", timers.all());
}, 4000)
timers.add(function() {
console.log("timeout 5 fired");
}, 5000)
console.log('All timers', timers.all())
console.log("kill timer 2")
timers.stop(2)
Запустите фрагмент, чтобы увидеть его в действии.