Передача данных в компонент с помощью запроса GET - PullRequest
0 голосов
/ 09 февраля 2020

Как я могу передавать данные, полученные в моем сервисе, обратно компоненту каждый раз, когда ему передаются новые данные / URL и l oop поверх него с помощью NgFor? Я хотел бы использовать обещания, а не наблюдаемые.

Для пояснения: Сервис (A) должен передавать свой объект Компоненту (B) каждый раз, когда данные изменяются, а затем l oop поверх него с помощью NgFor. Заранее спасибо

вот мой код:

ОБСЛУЖИВАНИЕ (А)

 receiveEvent(eventId){
   return fetch(eventId).then(res => res.json())
   .then((data:any) => {
     console.log(data);
 });

ПОЛУЧЕНИЕ КОМПОНЕНТА (В)

 requestEvent(requestUrl){
  this._clientService.receiveEvent(requestUrl)
  }

1 Ответ

0 голосов
/ 10 февраля 2020

Вы можете вернуть обещание и решить в обратном вызове finally:

service

fetch(URL: string): Promise < any > {
    return new Promise(resolve => {
        this.http.get(URL)
            .subscribe(response => {
                console.debug("response = %O", response);
                // set data locally
                this.myVariable = data[0]["myVarible"];
            }, error => {
                console.error(error);
            }, () => {  // finally
                resolve();
            })
    });
}

вызывающий конструктор компонента

this.myService.fetch(URL).then(() => {
    console.log(this.myService.myVariable);
});

Если вы не используете веб-сокеты, вам придется часто опрашивать базу данных на предмет новых данных; обернуть выборку конструктора вызывающего компонента в setInterval

...