typescript - 如何使用 fp-ts 将 TaskOption 变成 TaskEither?
问题描述
我有一个函数可用于在数据库中查找对象并返回TaskOption
:
find: (key: SchemaInfo) => TO.TaskOption<Schema>
另一个保存它:
register: (schema: Schema) => TE.TaskEither<Error, void>
在我的register
实现中,我想检查Schema
我试图保存的是否存在(我想使用find
),但我不知道如何将 a 映射TaskOption
到 aTaskEither
中。我试图这样做:
pipe(
findSchema(schema.info),
TE.fromTaskOption,
TE.swap
)
但TE.fromTaskOption
不返回TaskEither
我所期望的。我也尝试过TE.fromTaskOptionK
,但也没有用,而是返回了一个形状怪异的函数。
我的用例是,如果TaskOption
我none
尝试保存(这意味着架构尚未注册),否则我返回错误(架构已注册)。我该如何解决这个问题?
解决方案
TE.fromTaskOption
Left
当 TO为None
尝试这个:
pipe(
findSchema(schema.info),
TE.fromTaskOption(() => "No schema"),
TE.swap
)
推荐阅读
- python - scikit-learn RandomForestClassifier 怀疑过拟合二元分类玩具问题
- javascript - jquery html页面正文发送邮件
- python - 有没有办法在 python 中为参与者组织者建立一个共现(频率)矩阵?
- node.js - 如何导航承诺?
- reactjs - React useEffect Hook 抱怨缺少依赖
- arrays - 如果我要将多个列中的值与命名范围内的对应值进行比较,应该使用哪个公式?
- sql - 添加一列,该列是多个其他列的总和
- python - TPU和GPU的结果不同
- laravel - 带有 laravel 的 IIS 删除/隐藏 index.php
- javascript - 当我尝试在网格布局中添加组件时,我的代码不起作用