fp-ts中pipe(do async function, TE.mapLeft)的快捷方式?

Shortcut for pipe(do async function, TE.mapLeft) in fp-ts?

提问人:sunyup.kim 提问时间:11/7/2023 最后编辑:sunyup.kim 更新时间:11/7/2023 访问量:75

问:

我是fp-ts的新手。 我通常会编写代码来调用异步函数返回,如下所示。Promise<Either>

  pipe(
  TE.bind('info1', ({}) =>
    pipe(
      () => asyncGetInfo1(),
      TE.mapLeft(e => Errors.BadRequestError('invalid info1')),
    ),
  ),
  TE.bind('info2', ({}) =>
    pipe(
      () => asyncGetInfo2(),
      TE.mapLeft(e => Errors.BadRequestError('invalid info2')),
    ),
  ), 
  ...
  )

这有什么捷径吗?

({}) =>
pipe(
  () => asyncGetInfo1,
  TE.mapLeft(e => Errors.BadRequestError('invalid info1')),
)

我应该把它作为一个新功能吗?

TypeScript 函数式编程 FP-TS

评论

0赞 tripleee 11/7/2023
我试图想出一个更好的标题,但我对这个域名的了解还不够,无法判断这是否是一种改进。请审查;与其说“我有问题”,不如试着实际描述问题。
1赞 sunyup.kim 11/7/2023
谢谢你的评论。我的问题是 [ 管道 - 执行异步函数 - TE.mapLeft ] 的快捷方式
0赞 cdimitroulas 11/7/2023
不知道怎么会变短哈哈!它已经很短了。我看到的唯一明显的变化是你不需要额外的箭头函数:另一种选择是将异步函数更改为直接失败,并显示 Errors.BadRequestError,如果这有意义的话。而不必为他们使用 TE.mapLeftpipe(asyncGetInfo1, TE.mapLeft(e => Error.BadRequesterror('invalid info1'))

答: 暂无答案