Javascript Angularjs ui路由器在路由中解析

Javascript Angularjs ui路由器在路由中解析,javascript,angularjs,angular-ui-router,angular-promise,resolve,Javascript,Angularjs,Angular Ui Router,Angular Promise,Resolve,你能查一下我的密码吗 .state('addNewGroup', { url: '/group/new', resolve:{ "checkPermission": function ($state, checkPermission) { checkPermission.checkPermission() .then(function (result) { if

你能查一下我的密码吗

    .state('addNewGroup', {
    url: '/group/new',
    resolve:{
        "checkPermission": function ($state, checkPermission) {
            checkPermission.checkPermission()
                .then(function (result) {
                    if (result) {
                        alert('Hello');
                    } else {
                        alert('access denied');
                    }
                })
        },
        "otherStuff": function () {
            console.log("Should execute only if result in 'checkPremission' is true");
        }

    },
});
问题

我在路由配置中有两个承诺。 是否有可能只解决具体的承诺? 假设我有5个承诺要解决,我只想在“checkPremission”为真的情况下解决它们。在其他情况下,我不想解决所有问题。
是否可能,或者我应该使用不同的逻辑。

这里的主要问题是,当您编写这样的代码时,我认为所有函数(在键之后)都是异步执行的。但正如我所看到的(如果是真的),你必须等待结果来决定下一步行动。那么,为什么不把代码(可能是if-else)放在promise的successful和failed函数中决定调用哪些函数。

您可以将下一个promise作为依赖项注入,使其等待上一个promise:

resolve: {
  firstResolve: function() {
    return 'A result';
  },
  nextResolve: function(firstResolve) {
    // firstResolve has the value 'A result' here
  }
}

从技术上讲,第二个解决方案将执行,但您可以根据第一个解决方案的结果建立逻辑。

我完全忘记了这一点。谢谢,先生。