【发布时间】:2014-06-24 21:13:56
【问题描述】:
我有 2 个函数,都返回承诺:
var getToken = function() {
var tokenDeferred = $q.defer();
socket.on('token', function(token) {
tokenDeferred.resolve(token);
});
//return promise
return tokenDeferred.promise;
}
var getUserId = function() {
var userIdDeferred = $q.defer();
userIdDeferred.resolve('someid');
return userIdDeferred.promise;
}
现在我有一个主题列表,我想在这两个承诺得到解决后立即更新
var topics = {
firstTopic: 'myApp.firstTopic.',
secondTopic: 'myApp.secondTopic.',
thirdTopic: 'myApp.thirdTopic.',
fourthTopic: 'myApp.fourthTopic.',
};
已解决的主题应如下所示myApp.firstTopic.someid.sometoken
var resolveTopics = function() {
$q.all([getToken(), getUserId()])
.then(function(){
//How can I resolve these topics in here?
});
}
【问题讨论】:
-
它们将在您的评论执行之前/之后通过时间码来解决。 docs.angularjs.org/api/ng/service/$q#all你是问如何从每个获取返回的数据吗?上述链接的文档中也对此进行了回答。第一个参数将是一个数组,其值表示承诺的解决方法。
-
很抱歉我会编辑。我在问如何使用 getToken() 和 getUserId() 返回的值更新
topics -
主题与从 getToken 和 getUserId 承诺返回的数据有何关系?
-
myApp.firstTopic.someid.sometoken
标签: javascript angularjs asynchronous q