Я использую обещания для заполнения массива, используя несколько созданных мной веб-сервисов (this.batGradesProvider.getAllCourseIds()
&& provider.getCoursesGrades
) , но я не всегда получаю ВСЕ значения из моего веб-сервиса. Например, для одного из моих тестовых случаев я ЗНАЮ, что у меня есть массив из 6 курсов, но я получаю только 2 в конце . Я делаю что-то не так с моим обещанием или, возможно, с forEach? Заранее спасибо.
const promise = this.batGradesProvider.getAllCourseIds();
promise.then((courseIds) => {
courseIds.forEach((courseId) => {
const promise2 = provider.getCoursesGrades(siteId, courseId, userid);
promise2.then((data) => {
for (let i = 0; i < data.data.length; i++) {
// Get this course
const activity = data.data[i];
const activityObj: Activity = {
courseName: activity.courseName,
courseId: courseId,
name: activity.name,
status: activity.status,
complete: activity.complete,
score: activity.grade,
hasPassed: activity.hasPassed,
user: activity.username,
email: activity.useremail,
activityName: activity.activityname,
activityId: activity.activityid
};
// Add course to our running data
this.batGradesTable.push(activityObj);
}
return this.batGradesTable;
});
});
})