gpt4 book ai didi

typescript - fp-ts在mapLeft内部调用异步函数

转载 作者:行者123 更新时间:2023-12-03 08:18:53 24 4
gpt4 key购买 nike

我是fp-ts的新手,请帮助我解决问题:
我需要使用异步功能在不同级别上多次记录同一错误。这是我的示例代码:

const myProgram = pipe(
tryCatch(() => someAsyncFunc(), toError),
mapLeft(async (err1) => {
await loggerAsyncFunc();
return err1;
}),
)

const main = pipe(
myProgram,
mapLeft((err2) => {
// err2 is a pending promise :(
})
)();

我正在使用 mapLeft来做到这一点,但是它不起作用。
我需要怎么做才能在 err2中提供错误(err1)的值而不是未决的Promise?

最佳答案

假设您正在使用TaskEither,否则Else可以在左侧链接Task。

const myProgram = pipe(
TE.tryCatch(() => someAsyncFunc(), toError),
// orElse is like a chain on the left side
TE.orElse(err1 => pipe(
TE.rightTask(longerAsyncFunc),
TE.chain(() => TE.left(err1))
)),
);

const main = pipe(
myProgram,
mapLeft((err2) => {
// err2 is no longer a promise
})
)();

关于typescript - fp-ts在mapLeft内部调用异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62065585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com