Angular 2 Rxjs создает действие после ответа сервера

1

Я новичок в Angular2 (и особенно в библиотеке RxJs) и укладывается на следующий шаг. Мой веб-сайт начинается со страницы регистрации. И после завершения регистрационной формы у меня есть использование метода register.auth.ts метода service.auth.ts

     registerUser(){
        this.authService.registerUser(this.registrationForm.value)
        .subscribe((data) => {
           console.log(data);
        })
        //this line should apear after server response from backend
        console.log('AFTER SERVER RESPONSE')
        }

И я получаю ответ вроде этого

Изображение 174551

Я читал некоторые вещи о flatMap методе в RxJs документации и утверждал, что альтернатива по умолчанию Promise метод, then() - но я не смог создать рабочий экземпляр кода, который реализует acutally flatMap метод для моего случая

Поэтому возникает вопрос: как я могу достичь результата, поэтому появляется сообщение "ПОСЛЕ СЕРВЕРНОГО РЕАГИРОВАНИЯ" ПОСЛЕ ответа сервера? (не раньше, как упоминалось на предыдущем снимке экрана)

Теги:
angular
rxjs
promise

1 ответ

2
Лучший ответ

Вы должны дождаться завершения асинхронной задачи. Переместите этот console.log('AFTER SERVER RESPONSE') внутри блока subscribe.

registerUser() {
        this.authService.registerUser(this.registrationForm.value)
        .subscribe((data) => {
           console.log(data);
           //this line should apear after server response from backend
           console.log('AFTER SERVER RESPONSE')
        });

      // anything written over here will execute before 'registerUser()' returns data
     console.log('THIS WILL PRINT BEFORE SERVER RESPONSE')
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню