[英]How to turn a TaskOption into a TaskEither using fp-ts?
我有一个函数可用于在数据库中查找对象并返回一个TaskOption
:
find: (key: SchemaInfo) => TO.TaskOption<Schema>
另一个保存它:
register: (schema: Schema) => TE.TaskEither<Error, void>
在我的register
实现中,我想检查我尝试保存的Schema
是否存在(我想使用find
),但我不知道如何将TaskOption
映射到TaskEither
。 我试图这样做:
pipe(
findSchema(schema.info),
TE.fromTaskOption,
TE.swap
)
但TE.fromTaskOption
没有返回我期望的TaskEither
。 我也试过TE.fromTaskOptionK
但它也不起作用,它返回一个奇怪的形状函数。
我的用例是,如果TaskOption
为none
我会尝试保存(这意味着架构尚未注册),否则我将返回错误(架构已注册)。 我该如何解决这个问题?
当 TO 为None
时, TE.fromTaskOption
需要一个值放入Left
尝试这个:
pipe(
findSchema(schema.info),
TE.fromTaskOption(() => "No schema"),
TE.swap
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.