Мне нужно разрешение (false) в catchError, но это не работает.
В моем loin.page.ts
async login() {
if (this.signin.valid) {
const controls = this.signin.controls;
const valid = await this.authService.signin(controls.email.value, controls.password.value);
if (valid) {
this.navCtrl.navigateRoot('/user', { animated: true});
} else {
console.log('Bad credentials');
}
}
}
authService.ts
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { map, catchError } from 'rxjs/operators';
constructor(private http: HttpClient) {}
signin(email, password) {
const headers = new HttpHeaders({
Accept: 'application/json',
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*',
});
const data = {
email,
password
};
const url = URL_SERVICIOS + 'xxx';
return new Promise ((resolve) => {
this.http.post(url, data).pipe(
map( (result: any) => {
this.credentials = result;
resolve(true);
}),
catchError(() => {
return Promise.resolve(false);
})
).subscribe();
});
}
Этот код заканчивается на 'return Promise.resolve (false);' и не продолжается в loin.page.ts