BrasilAPI / cep-promise

Busca por CEP integrado diretamente aos serviços dos Correios, ViaCEP e outros (Node.js e Browser)
MIT License
2.88k stars 316 forks source link

Função de Debounce #160

Closed SkyaTura closed 4 years ago

SkyaTura commented 4 years ago

Acho que seria interessante a inclusão de uma função de Debounce embutida no pacote, para economizar dados trafegados pelos usuários, principalmente de requisições feitas a partir de usuários mobile.

Na empresa onde eu trabalho utilizamos a consulta de CEP com muita frequência em diversos projetos, e eu criei um pacote que "extende" esse para a inclusão do método de Debounce.

Se essa idéia for bem recebida, eu posso elaborar um PR para inclusão nesse pacote.

Segue o link do nosso repositório para referência: https://github.com/emiolo/cep-promise

filipedeschamps commented 4 years ago

Que massa @SkyaTura parabéns pela implementação meu caro! De fato é algo que pode contribuir! Mas só para entender o cenário: isso é para evitar que chamadas sejam feitas pela network enquanto a pessoa está digitando o CEP? Pergunto isso porque a biblioteca só vai fazer uma chamada quando o valor inserido for válido.

Abração e obrigado por abrir a issue com essa idéia!

SkyaTura commented 4 years ago

O caso de uso é facilitar a implementação de Front-ends que usem essa ferramenta. Dessa forma a função pode ser usada diretamente em um evento de input sem a necessidade de adicionar alguma camada extra para evitar as múltiplas requisições.

filipedeschamps commented 4 years ago

Show! Mas reforço meu ponto que a biblioteca irá fazer uma requisição somente no momento que atingir a quantidade exata de caracteres de um CEP de 12345678. Caso ela receba 1 ou 12 ou 123 ela não irá fazer requisições e irá de forma "local" retornar um erro de formatação (sem fazer nenhuma chamada na network).

Por "requisições" você significa requisições pela rede (as chamadas contra os providers)?

SkyaTura commented 4 years ago

Eu, por desatenção mesmo, não tinha reparado que a lib não fazia chamadas de network para os fornecedores com números inválidos. Nesse caso o Debounce é desnecessário mesmo 🙈

filipedeschamps commented 4 years ago

Sem problemas meu caro, e novamente obrigado por se disponibilizar a trazer uma nova feature a biblioteca 🤝