Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Dúvida sobre o método editar

Ao finalizar tarefa, ele chama este método de editar passando false para o parâmetro atualizarSubject. Como que o valor é persistido se a lógica dentro do subscribe não é chamada? Está lógica dentro do subscribe só está relacionada ao frontend da aplicação em si? Não há nenhuma relação com a chamada do método HTTP Put que atualiza o valor no backend da aplicação?

  editar(tarefa: Tarefa, atualizarSubject: boolean): void {
    const url = `${this.API}/${tarefa.id}`;
    this.http.put<Tarefa>(url, tarefa).subscribe(tarefaEditada => {
      if(atualizarSubject) {
        const tarefas = this.tarefasSubject.getValue();
        const index = tarefas.findIndex(tarefa => tarefa.id === tarefaEditada.id);
        if(index !== -1) {
          tarefas[index] = tarefaEditada;
          this.tarefasSubject.next(tarefas);
        }
      }
    })
  }
1 resposta
solução!

Olá, Lorenzo! Tudo bem com você?

O que está acontecendo é que o método editar faz uma chamada HTTP PUT para atualizar a tarefa no backend. Essa atualização ocorre independentemente do que acontece dentro do bloco subscribe. Ou seja, a chamada ao backend é feita assim que o método put é chamado, e o backend processa essa atualização.

O bloco subscribe é responsável por tratar a resposta dessa chamada HTTP no frontend. Se atualizarSubject for true, ele atualiza o tarefasSubject que você está utilizando para manter a lista de tarefas atualizada no frontend. Isso permite que qualquer componente que esteja observando tarefasSubject receba a lista atualizada de tarefas.

Quando atualizarSubject é false, o bloco dentro do subscribe não atualiza o tarefasSubject, mas isso não impede que a tarefa seja atualizada no backend. Em outras palavras, a atualização no backend ocorre de qualquer forma; o parâmetro atualizarSubject apenas controla se a lista de tarefas no frontend será atualizada automaticamente ou não.

Espero ter ajudado. Conte com o apoio do fórum em sua jornada!

Um abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!