我是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),而不是未决的诺言?
答案 0 :(得分:1)
假设您正在使用TaskEither,否则Else可以在左侧链接Task。
1-1 [
{
t_class_id: 1,
t_class_subject_id: 1,
t_class_task_id: 1,
title: 'Mengerjakan Soal',
sec_user_id: '4',
is_submit: 0,
is_intime: 0,
noSubmit: 1
},
{
t_class_id: 1,
t_class_subject_id: 1,
t_class_task_id: 1,
title: 'Mengerjakan Soal',
sec_user_id: '8',
is_submit: 1,
is_intime: 0,
late: 1
},
{
t_class_id: 1,
t_class_subject_id: 1,
t_class_task_id: 1,
title: 'Mengerjakan Soal',
sec_user_id: '3,5,7',
is_submit: 1,
is_intime: 1,
onTime: 3
}
]
2-2 [...]
3-4 [...]