ich eine Kette von Versprechungen in Winkeln mit und ich würde am Ende der Kette, die wie ein Wert zurückgegeben werden soll:Javascript Angular resolve Kette von Versprechen vor einem Ergebniswert der Rückkehr
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
}
die Kette 'promise' wird nicht aufgelöst, bevor die Rückgabe übergeben wird: count_pres wird zurückgegeben, bevor $ q.all (promise) fertig ist. Irgendeine Idee?
Statt '$ q.all (Versprechen) return count_pres' verwenden' return $ q.all (Versprechen) ' – varit05
es nicht funktioniert: Die gesamte Versprechen Kette in diesem Fall wird statt nur die zurückgegeben werden Wert count_pres – ai20
gibt die kombinierten Versprechen zurück, anstatt count_pres zurückzugeben, genau wie @ varit05 sagte, und behandelt die Zuweisung von Werten außerhalb dieser Funktion. Versprechen sind asynchron – doge1ord