Я создал службу, которая должна запускать любые http-запросы, которые были запрошены.Это выполняется в хуке uS-router onSuccess и выглядит следующим образом:
$transitions.onSuccess({}, function() {
document.body.scrollTop = document.documentElement.scrollTop = 0;
console.log('%cwe have completed a transition', 'color: green;');
httpQueueService.process();
});
Проблема в том, что контроллер инициализируется после этого хука, поэтому я не могу перехватить запросы http без добавления тайм-аута:
function process() {
$timeout(() => {
let t = angular.copy(queue);
console.log('processing', t, t.length);
queue.forEach((task) => invoke(task));
}, 500);
}
Я знаю, что тайм-аут составляет всего полсекунды, и я мог бы, вероятно, уменьшить его еще больше, но это не кажется правильным.Было бы лучше, если бы я мог получить контроллер, который был инициализирован непосредственно из ловушки успеха.
Есть ли способ сделать это?
Я попытался, посмотрев на объект перехода вхук успеха:
$transitions.onSuccess({}, function(transition) {
console.log(transition);
});
Но, похоже, там нет контроллера