Я просмотрел похожие вопросы и ответы и не нашел ответа, который напрямую затрагивает мой вопрос. Я изо всех сил пытаюсь понять, как использовать Maybe
или Either
или Monads
в сочетании с функциями трубопровода. Я хочу объединить функции вместе, но я хочу, чтобы труба остановилась и возвратила ошибку, если она возникает на любом этапе. Я пытаюсь реализовать концепции функционального программирования в приложении node.js, и это действительно мое первое серьезное исследование, так что ответ не будет таким простым, чтобы оскорбить мой интеллект по этому вопросу.
Я написал такую функцию:
const _pipe = (f, g) => async (...args) => await g( await f(...args))
module.exports = {arguments.
pipeAsync: async (...fns) => {
return await fns.reduce(_pipe)
},
...
Я называю это следующим образом:
const token = await utils.pipeAsync(makeACall, parseAuthenticatedUser, syncUserWithCore, managejwt.maketoken)(x, y)