javascript - 在 AngularJS 中结合 2 个 Promise

标签 javascript angularjs

我结合了2个 promise ,但不起作用,在一个服务中我有2个方法,其中方法“UserService.getAuthenticatedUser()”获取当前用户信息,然后有一个“UserService.getAccountTypeData(idUser)”,其中获取用户类型信息,但要达到第二种方法,我需要 userID,所以基本上首先我调用“UserService.getAuthenticatedUser()”,获取 id,然后调用“UserService.getAccountTypeData(idUser)”,但不起作用。

 function isAccount(accountName) {
             UserService.getAuthenticatedUser()
                .then(function (response) {
                    var userDetails = response.data;

                });


            UserService.getAccountTypeData(idUser)
                .then(function (response) {
                    var userDetails = response.data;
                    return  userDetails;
                });

}

PS:我已经注入(inject)了服务...

最佳答案

您可以通过从 .then() 函数返回值来链接您的 Promise。

function isAccount(accountName) {
    return UserService.getAuthenticatedUser(accountName) // pass in accountName argument?
        .then(function(response) {
            var userDetails = response.data;
            return userDetails.Id; // user id value
        })
        .then(UserService.getAccountTypeData) // userDetails.Id gets passed to getAccounttypeData method
        .then(function(response) {
            var userDetails = response.data;
            return userDetails;
        });

}

// usage
isAccount('AccountA').then(function(userDetails) {
    // do something with userDetails
});

关于javascript - 在 AngularJS 中结合 2 个 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38442681/

相关文章:

JavaScript 函数格式 : Is one of these a method?

javascript - 将 jquery 惯用语翻译为 YUI

javascript - 如何将此示例中的可折叠部分的默认显示从折叠更改为展开

javascript - 使用循环定义许多 Angular 指令

mysql - 如何在 Angular JS 中从数据库获取信息到 div 或表单字段?

javascript - 除了在开发期间进行测试之外,在登台服务器上进行测试还有哪些好处?

javascript - knockout 错误?,无法匹配评论结束

javascript - Angular,从当前服务调用服务功能

javascript - 页面刷新时未设置 Angular 选择的选定值

javascript - 如何避免为同一链接创建新选项卡(已在浏览器中打开)