解析方法中的一个变量依赖于另一个变量,是否可以在解析方法中的变量之间共享相同的 promise ?
$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);
}]
}});
最佳答案
我希望这会起作用:
$routeProvider.when('/report/:ruleId', { resolve: {
vars: ['$route', 'service','$q' function ($route, service) {
var defer = $q.defer(),
data = [];
service.getRequest().then(function(firstResponse){
data.push(firstResponse);
service.getAnotherRequest(firstResponse.id).then(function(secondResponse){
data.push(secondResponse);
defer.resolve(data);
});
})
return defer.promise;
}],
}});
关于javascript - 在 $routeProvider 的解析功能中使用 promise 链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25626299/