【发布时间】:2018-10-04 10:46:59
【问题描述】:
我的 angularjs 项目中有两个 promise 函数,getToken()、getUser(token)。
我可以像这样运行两个操作:
$q.all({token: getToken(), userId: getUserId()})
.then(function(resolutions){
var token = resolutions.token;
var userId = resolutions.userId;
});
但是我的getUserId() 方法需要一个令牌作为参数。所以我需要先获取token,然后获取userId并返回token和userId。如何使用 $q 做到这一点?
我是这样使用chaniing的:
return getToken().then(function(token){
return getUserId(token).then(function(userid){
return {token: token, userid: userid};
})
})
但是没用,userid 为空。
【问题讨论】:
-
使用
promise chaining而不是$q.all -
那么你就不需要
$q.all,只需将它们一个一个链接到另一个 -
@NikhilAggarwal 我可以使用 Promise chaning 返回令牌和用户 ID 结果吗?我该怎么办?
标签: javascript angularjs deferred