Одна из моих переменных в методе разрешения имеет зависимость от другой переменной, возможно ли разделить то же обещание среди переменных в методе разрешения?
Кажется, что $ route.current.locals хранит разрешенные переменные, однако, когда var2 обрабатывается, $ route.current.locals имеет значение null, поскольку var1 еще не разрешен. То, что я пытаюсь что-то вроде этого:
$routeProvider.when('/report/:ruleId', { resolve: {
var1: ['$route', 'service', function ($route, service) {
return service.getRequest();
}],
var2: ['$route', 'service', function ($route, service) {
return service.getAnotherRequest($route.current.locals.var1.id);
}]
}});
Вам нужно использовать $ q.all [см. Документы] (https://docs.angularjs.org/api/ng/service/$q) и поместить результаты в объект {var1: value, var2: value} –
somePromise создается в области var1, а var2 использует разрешенные данные somePromise. Я обновил код. –
О, тогда используйте .then(). (Также все это должно быть сделано в службе). –