Como pipes e mônadas funcionam juntos em JavaScript?
Examinei perguntas e respostas semelhantes e não encontrei uma resposta que abordasse diretamente minha pergunta. Estou lutando para entender como usarMaybe
ouEither
ouMonads
em conjunto com as funções de tubulação. Quero canalizar funções juntas, mas quero que o canal pare e retorne um erro se ocorrer alguma a qualquer etapa. Estou tentando implementar conceitos de Programação Funcional em um aplicativo node.js. e esta é realmente minha primeira exploração séria de qualquer um deles, portanto, nenhuma resposta será tão simples que ofenda minha inteligência sobre o assunto.
Eu escrevi uma função de pipe assim:
const _pipe = (f, g) => async (...args) => await g( await f(...args))
module.exports = {arguments.
pipeAsync: async (...fns) => {
return await fns.reduce(_pipe)
},
...
Estou chamando assim:
const token = await utils.pipeAsync(makeACall, parseAuthenticatedUser, syncUserWithCore, managejwt.maketoken)(x, y)