Felino
@Felino

Angular Http как?

Всем привет!
Ребята подскажите такой вопрос!
Я сделал сервис
getWinTickets():Observable<Tickets[]>{
    return this.http.get<Tickets[]>('http://localhost:3001/win');
  }

  getTickets():Observable<Tickets[]>{
    return this.http.get<Tickets[]>('http://localhost:3000/tickets');
  }

  setTickets(ticket:Tickets):Observable<Tickets[]>{
    return this.http.post<Tickets[]>('http://localhost:3000/tickets',ticket);
  }

  setWinTickets(ticket:Tickets[]):Observable<Tickets[]>{
    return this.http.post<Tickets[]>('http://localhost:3001/win',ticket);
  }

в сервисе получаеться так:
getWinTickets - возвращает с БД
setWinTickets - записывает в БД
getTickets - возвращает с БД
setWinTickets - записывает в БД
Подскажите как правильно реальзовать вот такой функционал:
Записываю я даные нормально все и правильно, после того как я записал в tickets мне с него нужно взять каждый третий елемент и записать в win. Как правильно это реализовать?
Я пока реализовал так
onWinNumber() {
    this.winnumberService.getTickets().subscribe(ticket => {
      this.ticket = ticket.filter(c => c.id % 3 == 0);
    });
    this.winnumberService.setWinTickets(this.ticket).subscribe();

    console.log(this.ticket);
  }

Но у меня получается что при срабатывании функции первый раз возвращает просто пустой массив, а последующие уже с тех что я получил с БД!

Можно как то получить данные с БД по конкретным критериям? Если можно, привидите пример пожалуйста, а то в инете чет не нарыл(

Спасибо
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
EreminD
@EreminD
Кое-что умею
Может быть проблема с синхронностью
Попробуйте делать setWinTickets именно когда отработает getTickets
onWinNumber() {
    this.winnumberService.getTickets().subscribe(ticket => {
      this.ticket = ticket.filter(c => c.id % 3 == 0);
      this.winnumberService.setWinTickets(this.ticket).subscribe();
      console.log(this.ticket);
    });
  }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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