Обещание не всегда получает все значения из веб-сервиса

Открытие новой вкладки из расширения Firefox (Mozilla) происходит следующим образом:

gBrowser.selectedTab = gBrowser.addTab("http://example.com");
0
задан DanielRM 15 January 2019 в 21:20
поделиться

1 ответ

Вы пытаетесь выполнить обещание в пределах forEach, но функция forEach не знает, что должна ждать выполнения обещания. Возможно, вы захотите ознакомиться с Promise.all, когда хотите выполнить много обещаний.

Попробуйте что-то вроде этого:

this.batGradesProvider.getAllCourseIds().then((courseIds) => {
  return Promise.all(courseIds.map((courseId) => {
    return provider.getCoursesGrades(siteId, courseId, userid);
  }).then((results) => {
    this.batGradesTable = [];

    results.forEach((data) => {
      for (let i = 0; i < data.data.length; i++) {
        const activity = data.data[i];
        const activityObj = { /* ... */ };
        this.batGradesTable.push(activityObject);
      }
    });

    return this.batGradesTable;
  });
});
0
ответ дан Matt Huggins 15 January 2019 в 21:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: