如何按顺序解析嵌套的 $q.all
How can I resolve the nested $q.all by order
我的 angularjs 项目中有两个承诺函数,getToken()
,getUser(token)
。
我可以运行两个这样的操作:
$q.all({token: getToken(), userId: getUserId()})
.then(function(resolutions){
var token = resolutions.token;
var userId = resolutions.userId;
});
但是我的 getUserId()
方法将令牌作为参数。所以我需要先获取令牌,然后获取 userId 和 return 令牌和 userId。我如何使用 $q
来做到这一点?
我是这样用chaniing的:
return getToken().then(function(token){
return getUserId(token).then(function(userid){
return {token: token, userid: userid};
})
})
但是没有用,userid 变为空。
您可以像下面这样链接承诺
getToken()
.then(function(token){
return getUser(token)
.then(function(userId){
return {token, userId};
})
})
我的 angularjs 项目中有两个承诺函数,getToken()
,getUser(token)
。
我可以运行两个这样的操作:
$q.all({token: getToken(), userId: getUserId()})
.then(function(resolutions){
var token = resolutions.token;
var userId = resolutions.userId;
});
但是我的 getUserId()
方法将令牌作为参数。所以我需要先获取令牌,然后获取 userId 和 return 令牌和 userId。我如何使用 $q
来做到这一点?
我是这样用chaniing的:
return getToken().then(function(token){
return getUserId(token).then(function(userid){
return {token: token, userid: userid};
})
})
但是没有用,userid 变为空。
您可以像下面这样链接承诺
getToken()
.then(function(token){
return getUser(token)
.then(function(userId){
return {token, userId};
})
})