использовать результат ответа в компоненте - PullRequest
0 голосов
/ 19 июня 2020

Я пытаюсь получить логический результат пост-ответа в компоненте. Я проверил api, он дает правильные ответы (истина / ложь), data имеет прибл. значение, но я не могу использовать это значение в другом компоненте.

У меня есть эта функция в репозитории / классе обслуживания:

validateSenderName(name: string) {
this.http.post<boolean>("api/senders/validateSenderName/" + name, null).subscribe(data => { return data; });

}

Тогда Я вызываю эту функцию в компоненте:

checkSenderName = (params) => new Promise((resolve) => { resolve(this.repo.validateSenderName(params.value)); });

Как это решить?

РЕДАКТИРОВАТЬ:

Благодаря Майклу, у меня все получилось :

checkSenderName = (params) => new Promise((resolve) => {
this.repo.validateSenderName(params.value).subscribe(data => { this.nameAlreadyExists = data; });
resolve(this.nameAlreadyExists);

});

1 Ответ

1 голос
/ 19 июня 2020

Вы можете вернуть наблюдаемый объект и подписаться на него в компоненте. Здесь нет необходимости смешивать наблюдаемые и обещания.

Сервис

validateSenderName(name: string): Observable<any> {
  return this.http.post<boolean>("api/senders/validateSenderName/" + name, null);
}

Компонент

getData(params: any) {
  this.service.validateSenderName(params.value).subscribe(
    data => { this.checkSenderName = data },
    error => {
      // always good practice to handle HTTP errors
    }
  );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...