Angular 7 - Как связать HTTP-запрос с наблюдаемыми - PullRequest
0 голосов
/ 17 мая 2019

Я хочу иметь возможность удалить оповещение, но только если это оповещение не назначено пользователю. Для этого мне нужно получить список пользователей и проверить, не назначен ли никому этот оповещение. Мне удалось заставить его работать, связав два запроса с наблюдаемыми, но есть ли лучший способ добиться этого?

deleteAlert(id: number) {
  this.usersService.getUsers().subscribe(
    (users) => {
      if (users.filter((value) => value.alert.id === id).length > 0) {
        console.log('Deassing alert to all user first');
      } else {
       this.alertService.deleteVillain(id)
        .subscribe(() => {
          this.alertsList =this.alertsList.filter(alerts=>alerts.id!==id);
        });
    }
  }
 )}

1 Ответ

0 голосов
/ 17 мая 2019

Вы можете использовать оператор flatMap, как указано в этом ответе .

deleteAlert(id: number) {
      this.usersService.getUsers().flatMap(
        (users) => {
          if (users.filter((value) => value.alert.id === id).length > 0) {
            console.log('Deassing alert to all user first');
          } else {
           return this.alertService.deleteVillain(id);
        }
      }).subscribe(data=>{
         this.alertsList = this.villainsList.filter(alerts=>alerts.id!==id);
      });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...