Цикл над наблюдаемым - PullRequest
0 голосов
/ 10 декабря 2018

В моей части приложения используется метод

this.knowledgeMan.getUserAllowedCases(Item.ItemNumber)

, который возвращает Observable.На моей серверной части этот метод возвращает List<String>.Мой вопрос: как я могу зациклить элементы этого списка строк?

Ответы [ 3 ]

0 голосов
/ 10 декабря 2018

Если у вас есть наблюдаемое, вы должны подписаться на него, чтобы получить реальное значение.В пределах подписки до вас, здесь вы можете отобразить или зациклить свои значения.

this.knowledgeMan.getUserAllowedCases(Item.ItemNumber).subscribe(allowedCases => {
  allowedCases.map(allowedCase => {
    // your code here
  });
});
0 голосов
/ 10 декабря 2018

Если вы используете этот List<String>, наблюдаемый для отображения в части HTML, вы можете использовать комбинацию async и *ngFor, чтобы получить желаемый результат.

//in your html for example
<ul>
  <li *ngFor="let item of (data$ | async)"> {{ item }} </li>
</ul>

//in your component

//usual angular stuff
export class MyComponent implements OnInit {
  data$: Observable<String[]>;
  constructor(private knowledgeMan: YourServiceInterface){}

  ngOnInit() {
    data$ = this.knowledgeMan.getUserAllowedCases(Item.ItemNumber);
  }
}

Если вы простоделая это для вычисления некоторого значения, вы можете сделать это следующим образом.

this.knowledgeMan.getUserAllowedCases(Item.ItemNumber).pipe(
  flatMap(),
  map(item => //do something with item here)
).subscribe();
0 голосов
/ 10 декабря 2018

Если, как вы говорите, getUserAllowedCases возвращает string[], тогда вы можете сделать это:

this.knowledgeMan.getUserAllowedCases(Item.ItemNumber).subscribe(x => {
  // assuming x is string[]
  for (const item of x) {
     // use item
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...