Как создать массив объектов из http.get - PullRequest
0 голосов
/ 19 января 2019

У меня есть http.get, и я не могу создать массив объектов.Вы можете мне помочь ?Мне нужно создать цикл для массива возвращаемых объектов, и я не могу этого сделать.

export class Link {
  idStat: String;
  idAccount: String;
}

links: Link [];

router.get('/linkGetAll', function(req, res, next) {
  Link.find(function (err, products) {
  if (err) return next(err);
    res.json(products);
  });
});

getAllLinks(){
  return this.http.get('/main/linkGetAll');
}

 this.api.getAllLinks().subscribe((data) => {
  this.links = data;
})

for(let item in this.links)
{
  DOESN'T WORK
}

Ответы [ 2 ]

0 голосов
/ 19 января 2019

Пожалуйста, прочитайте этот раздел о HTTP учебника по Angular и Angular API .

Метод get принимает тип:

get<T>(...): Observable<T>

чтобы вы могли изменить свою реализацию getAllLinks:

getAllLinks(): Observable<Link[] {
    return this.http.get<Link[]>('/main/linkGetAll');
}

Теперь вы должны иметь возможность повторять ответ:

getAllLinks().subscribe(links => {
    links.forEach(link => // do what you need);
}
0 голосов
/ 19 января 2019
getAllLinks(){
  return this.http.get('/main/linkGetAll')
    .pipe(map(res => {

       // do something here
       // res.forEach() or res.map()
       return 'it';
     })
   );
}

Прежде чем перейти к

for(let item in this.links) { DOESN'T WORK }

Убедитесь, что в this.links есть данные (используйте async / await вместе с toPromise ())

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...