Pipe
Concatenando funções
Quem programa está acostumado com o conceito de pipe, pois utilizamos pipes em diversos lugares, certo? Por exemplo, quando pegamos a saída de um comando e usamos como entrada para outro comando em no terminal.
Usamos o caractere pipe |
para concatenar 2 comandos.
Quando trabalhamos com streaming de dados também vemos o uso de pipes, seja com a biblioteca rxjs ou nativamente com a api da web streams, ou ainda com a api web streams do nodejs.
Mas como eu posso concatenar funções, para que uma função receba como argumento o retorno da função anterior? E eu lhe digo, isso pode ser feito usando reduce!
Vamos primeiro implementar usando apenas JavaScript, para entender de forma simples o que é estritamente necessário para essa implementação.
Então podemos criar como exemplo uma função que calcula um valor ao quadrado.
Perceba que ela só precisa do valor que será trafegado entre as funções e nada mais, agora vamos criar outra função que calcula a porcentagem e desta vez precisamos informar quantos % queremos.
Vamos concatenar os 2 exemplos.
Agora temos uma função nomeada calculate
, que recebe um parâmetro e processa o fluxo com ele, retornando o resultado final.
O que achou?
No próximo vou mostrar como escrever em TypeScript, facilitando a experiência de uso com tipagem estática.
Valeu, abraço
[]s
Last updated