Я строю angular с помощью ng build --prod.
Вывод в статическую папку в бэкэнде пирамиды
в форме входа, нажимается кнопка, а затем angular делает http сообщениек пирамидеБэкэнд пирамиды получает имя пользователя и pw. генерирует токен jwt и отправляет ответ.
Angular не ожидает ответа.
Angular делает HTTP-пост с использованием подписки и map () без наблюдения.
Создание JWT занимает около 3 секунд. Если я не решу не делать jwt и возвращать json супер быстро из бэкэнда, angular сразу же его поймает.
Если бэкэнд-пирамида не отвечает достаточно быстро, подписанный не поймает данные, илиошибки. кажется, что ничего не выполняется в функциях обратного вызова подписки, потому что это как если бы оно отписалось сразу.
Если пирамида не отвечает из-за каких-либо проблем, то сразу же после обратного вызова подписки обнаруживается ошибка, которая отображается в журнале консоли разработчика.
Попытка:попытался переключиться в асинхронный режим, та же проблема.
Я исправил угловую маршрутизацию без обработки с помощью outpush хэша true для маршрутизации.
Так выглядит код.
login.component.ts
login_button_pressed(username, password){
console.log('Seen in console .log');
this.auth.login(username, password)
.pipe(first())
.subscribe( data => {
//do something with data },
error => {
//print error
});
console.log(login function ended);
}
//pseudo code style.
auth.ts
login(username: string, password: string): Observable<user> {
console.log('This is printed in developer console log');
return this.http.post<any>('/route', {username, password})
.pipe(map( returned_data => {
console.log('this is never executed even though i see backend);
console.log('processing the two passed strings')
//do something with returned data
return returned_data
});
}
в бэкэнде пирамиды, я печатаю полученные строки и печатаю на консоли в бэкэнде перед отправкой ответа.
Команды печати, о которых я говорю, существуют для отладки