SaveLolliPoP
@SaveLolliPoP
1 / 0 = ∞

Как с помощью await дождаться ответа сервера?

Добрый день!
Вопрос на засыпку.
Есть пост запрос написанный на ангуляре, его обрабатывает метод одного сервиса:
postHTTP(url, info: any) {
    var some: any;
    this.http.post(url, info, httpOptions).subscribe(
        data  => {
          some = data;
          console.log("POST Request is successful ", some);
        },
        error  => {
          console.log("Error", error);
        }
      );
      return some;
  }


Далее в компоненте я делаю следующее:

constructor(
    private myHttp: myHTTPService
    ) {  }
....
async pars2gisplease() {
      console.log( await this.myHttp.postHTTP('/pars2gis', {email: this.parser2gis}) );
    }


Все бы ничего, но последовательность выполнения меня уже достала.

5c66c9fe9b235703803564.png

То есть, сервис получает данные и может с ними работать, но вот как их передать в компонент, это проблема.
Мои манипуляции с async await не работают, делаю я это для того, чтобы пользоваться возвращенной информацией с сервера в компоненте, а не в сервисе.
Как можно это реализовать?
  • Вопрос задан
  • 735 просмотров
Решения вопроса 1
@StockholmSyndrome
postHTTP(url, info) {
  return new Promise((resolve, reject) => {
    this.http.post(url, info, httpOptions).subscribe((data) => {
      resolve(data);
      console.log("POST Request is successful ", data);
    }, (error) => {
      reject(error);
      console.log("Error", error);
    });
  });
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы