Я хотел перейти с одного маршрута на другой, используя метод http post.Но навигация происходит без ответа от поста http.Ответ становится позже, когда я отлаживаю код
Как я могу это исправить?есть ли способ дождаться выполнения, пока ответ не придет от бэкэнда?
когда я нажму на кнопку, будет выполнена функция, и произойдет http-пост-вызов, тогда мне нужно будет передать ответ из пост-запросана новый маршрут
Quiz.service.ts
getResult(answers: QuestionAnswer): Observable<number> {
return this.http.post<number>(`${this.API_URL}result`, answers);
}
exam.component.ts
submitQuiz() {
this.isSubmitted = true;
const answers: QuestionAnswer = new QuestionAnswer(Array.from(this.selectedAnswers.keys()), Array.from(this.selectedAnswers.values()));
let result: number;
this.quizService.getResult(answers).subscribe(data => {
console.log(data);
result = data;
});
console.log(result);
this.navigateToResult(result);
}
navigateToResult(result: number) {
if(result != undefined){
const navigationExtras: NavigationExtras = {
queryParams: {
"result" : JSON.stringify(result)
}
}
this.router.navigate(['result'], navigationExtras);
}
}
значение undefined передается в маршрут