我被困在试图返回一堆承诺的值。Ember中的多个承诺不会在模板中解析
说明情况:有4个车型 - 学生 S IN一组有一个得分每个目标。
所以我做了一个组件,其中我通过了一个目标和组。该组件然后处理到商店的请求,以查找每个学生的得分,该目标,并返回平均值。
该代码似乎工作,console.logs给我正是我想要的,直到最后,但承诺不会解析到模板中 - 我得到{对象对象},我相信是未解决的承诺。
我在这里失踪的东西?在等待多个承诺解决时是否需要额外的步骤?
我很欣赏这有点具体,当我明白答案时,我会尝试重新解释这个问题。
组件代码:
averageScore: Ember.computed(function(){
var students = this.get('group.students');
var objective = this.get('objective');
var store = this.get('store');
var _this = this;
// Create an array of promises of each student's scores
var promises = [];
students.forEach((student) => {
var studentId = student.get('id');
var objectiveId = objective.get('id');
var newPromise = store.queryRecord('snapscore', { 'student' : studentId, 'objective': objectiveId });
promises.pushObject(newPromise);
});
// When promises resolve, find and return the average
return Ember.RSVP.allSettled(promises).then(function(scores){
let scoreTotal = 0;
let scoreCount = scores.length;
console.log("Score count is " + scoreCount);
scores.forEach((score)=>{
console.log("Student's score is " + score.value.get('score'));
scoreTotal = scoreTotal + score.value.get('score');
});
console.log("ScoreTotal is " + scoreTotal);
var average = scoreTotal/scoreCount;
console.log(average);
console.log(typeof(average));
return average;
});
}),
该组件的模板,然后简单地返回averageScore。
谢谢
可以发誓我做之前......没有吧!完美的答案,谢谢你的时间。使用didReceiveAttrs来设置属性。 – rjoxford