Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Devo chamar o listar() do back-end ou reatribuir a referência no front-end? [acesso simultâneo]

Boa noite, professor. Estou com uma dúvida referente à abordagem de reapresentação dos dados após a remoção de uma foto.

A dúvida gira em torno do método de remoção em si:

remove(foto) {

        this.service
            .remove(foto)
            .subscribe(
                () => {

                    console.log('Foto removida com sucesso');
                    let novasFotos = this.fotos.slice(0);
                    let indice = novasFotos.indexOf(foto);
                    novasFotos.splice(indice, 1);
                    this.fotos = novasFotos;
                }, 
                erro => console.log(erro)
            );

    }

Vemos aqui claramente que, ao remover uma foto, há uma reatribuição do novo conteúdo à lista. Eu entendi que essa estratégia consiste em evitar uma requisição desnecessária ao servidor (mais especificamente ao método listar()). Porém, supondo que dois clientes estejam interagindo com a aplicação simultaneamente e - caso um deles remova uma foto e o outro remova outra foto - a abordagem acima só iria identificar a mudança feita pelo respectivo cliente, correto? Se houvesse uma chamada ao método listar(), esse problema não ocorreria, pois eu estaria solicitando os dados novamente do servidor, certo? Qual abordagem eu deveria utilizar no caso de uma aplicação acessada simultaneamente por vários clientes?

Obrigado!

2 respostas
solução!

Olá meu aluno.

Nesse caso, se para o negócio você precisa ter sempre dados atualizados super atualizados, buscar os dados novamente no servidor como você colocou.

Sucesso e bom estudo!

Muito obrigado, professor!