我结合了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/