javascript - 在 $routeProvider 的解析功能中使用 promise 链

标签 javascript angularjs angular-promise ngroute

解析方法中的一个变量依赖于另一个变量,是否可以在解析方法中的变量之间共享相同的 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/

相关文章:

javascript - 为什么 JavaScript 中的这个生成器函数在任何yield 表达式之前停止?

javascript - 在 Javascript Ajax 中使用 PHP 常量

javascript - 为什么我的 GSP 拉入我的 AngularJS javascript 文件但不执行我的 Controller 功能?

javascript - 使用ngResource解决服务中的业务处理

javascript - Angular JS (1.2.26) 在 forEach 循环中 promise

javascript - 用 Fetch API 替换 $http

javascript - 在页面加载时隐藏 tbody,永久显示 thead 组,使用 jQuery 在下拉选择中显示 tbody

javascript - 一个按钮转换成一个简单的电子邮件表单

javascript - 我可以在 AngularJS 的指令声明中连接吗?

angularjs - Cordova + Angular : How to test?