component.html:
<div *ngIf="!isWaiting">
<h2>LOGIN</h2>
<p>{{ message | async }}</p>
<div *ngIf="!(isLoggedIn | async)">
<button (click)="login()">{{'StrLogin' | translate}}</button>
</div>
<div *ngIf="(isLoggedIn | async)">
<button (click)="logout()">{{'StrLogout' | translate}}</button>
</div>
</div>
<div *ngIf="isWaiting">
<p>initializing</p>
</div>
component.ts
message: Observable<string>;
login(name : string, password : string): void {
this.message = this.tokenService.login(name, password)
.pipe(
map((token) => {
console.debug('login succeeded: %s', JSON.stringify(token));
return 'success';
}),
catchError(err => {
console.debug('login failed: %s', JSON.stringify(err));
return 'failed';
})
);
}
Когда это не удается, отображается только буква «d» (из «fail»).Если я изменю его на:
catchError(err => {
console.debug('login failed: %s', JSON.stringify(err));
return '123';
})
, отобразится 3.