Открытие новой вкладки из расширения Firefox (Mozilla) происходит следующим образом:
gBrowser.selectedTab = gBrowser.addTab("http://example.com");
Вы пытаетесь выполнить обещание в пределах 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;
});
});