首页 > 解决方案 > 民间故事:结合结果和任务(或只是承诺)

问题描述

这是一口损坏的代码:

async function foo() {
  return maybeMonad
    .map((resultMonad) => resultMonad
      .matchWith({
        Error: (errorMonad) => errorMonad,
        Ok: (okMonad) => okMonad
          .map(async (context) => {
            let res = await apiRequest(context.token);
            context.data = res.data;
  
            return context;
          }),
      }));
}


await foo() // => Maybe(Promise)

这个想法是从上下文中获取一些值,发出请求并返回带有补充数据的上下文。但它返回一个处于待处理状态的 Promise。我做错了什么?

标签: javascriptfunctional-programmingfolktale

解决方案


推荐阅读