【发布时间】:2016-07-29 12:18:55
【问题描述】:
我正在使用 Angular 的一系列承诺,我希望在链的末尾应该返回一个值:
this.calculateeventsattended = function(username) {
var Attendees = Parse.Object.extend("Attendees");
var User = Parse.Object.extend("User");
var count_pres = 0
query1 = new Parse.Query(Attendees);
query1.equalTo("user_id",username);
query1.equalTo("presence",true)
var promise = query1.count(function(count){
count_pres = count
}).then(function(){
query2 = new Parse.Query(User);
query2.equalTo("username",username);
query2.first().then(function(object){
alert("parse" + count_pres)
object.set("events_attended",count_pres)
object.save()
})
})
$q.all(promise)
return count_pres
}
在 return 传递之前链 'promise' 没有解决:count_pres 在 $q.all(promise) 完成之前返回。有什么想法吗?
【问题讨论】:
-
用
$q.all(promise) return count_pres代替return $q.all(promise) -
它不起作用:在这种情况下,将返回整个承诺链,而不是仅返回值 count_pres
-
返回组合的 Promise,而不是像 @varit05 所说的那样返回 count_pres,并处理该函数之外的值分配。 Promise 是异步的
-
不可能。你只能返回一个承诺。不是一个值
标签: javascript angularjs promise