Я впервые пытаюсь это сделать, если кто-то может помочь, это было бы очень полезно. То, что мне нужно или я пытаюсь, это ждать каждого ответа HTTP, когда вы делаете запрос к API, пока вы не получите ответ, вы не можете нажать кнопку еще раз, но на самом деле не знаете, как начать
Это код, в котором я вызываю функцию, которая выполняет метод POST для API
constructor(
private _builder:FormBuilder, private usersService: UsersService,private router: Router,
public _snackBar: MatSnackBar
) {}
sendUser(){
this.bSignIn = true;
let formData = new FormData();
formData.append('Identifier', this.loginForm.get('Identifier').value);
formData.append('Password', this.loginForm.get('Password').value);
setTimeout(() => {
this.usersService.validateUserCredentials(formData)
.subscribe(
res => {
this.bSignIn = false;
let auxRes: any = res;
if(auxRes.type == 'success'){
let auxUser = {
userId: auxRes.id,
personId: auxRes.person_id,
clientId: auxRes.client_id,
projectId: auxRes.project_id
}
this.isSigned = true;
//this.usersService.validateSigned(auxRes);
localStorage.setItem('leadLogged', JSON.stringify(auxUser));
this.goToUsersDashboard(auxRes.id);
}
else{
this.openSnackBar(this.snackMessage);
this.loginForm.reset();
}
},
err => {
console.log("else");
window.alert('Introduce valid data');
}
)}, 4000);
}
ValidateUserCridentials функция, выполняющая метод POST
Функция ValidateUsersCridentials
validateUserCredentials(user: any){
return this.http.post(this.API_URL+'NONE-NONE-2/'+ENDPOINT_NAME+'/login/', user, this.httpOptions);
}
Это моя кнопка
<button mat-raised-button [class.black]="!loginForm.invalid" [disabled]="loginForm.invalid" type="submit">Sign in</button>