Я думаю, вам нужно переместить некоторую логику внутри subscribe
в вашем вызове на startTestClick
.
Как-то так:
async startTestClick() {
var promise = await this.pollService.getQuestions().subscribe(data => {
this.que = data;
this.nrSakte = 0;
this.testQuestions = this.shuffle(this.que).slice(0,50);
for (let entry of this.testQuestions) {
entry.picture ="A";
entry.color = "black";
}
});
...
}
Без этого остальные вашикод будет выполняться, пока subscribe
ожидает результатов, а this.que
еще ничего не имеет.
Не думаю, что вам действительно нужен async/await
.Так что это тоже может сработать.
startTestClick() {
this.pollService.getQuestions().subscribe(data => {
this.que = data;
this.nrSakte = 0;
this.testQuestions = this.shuffle(this.que).slice(0,50);
for (let entry of this.testQuestions) {
entry.picture ="A";
entry.color = "black";
}
});
...
}
Опять же, вы используете await
для вызова document.getElementsByClassName
, так что я могу ошибаться.Возможно, этот вызов должен быть и внутри subscribe
.
Попробуйте оба варианта, посмотрите, какой из них работает.Если это не решит вашу проблему, я могу удалить этот ответ.Это немного предположение, основанное на том, что в посте, но способ слишком много, чтобы поместить в комментарий.