javascript - 民间故事:结合结果和任务(或只是承诺)
问题描述
这是一口损坏的代码:
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。我做错了什么?
解决方案
推荐阅读
- java - Spring Data Rest 嵌套属性排序与 JsonUnwrapped
- amazon-rds - 将 Java-Spring 应用程序战争连接到 AWS RDS Oracle 数据库实例
- r - 使用 R-markdown knitr hooks 自定义 HTML 报告中的表格格式
- python - 如何使要打印的参数分开而不是空格分隔
- sbt - 如何根据 sbt 中的 crossScalaVersions 更改 unmanagedBase
- java - 如何在 Spring Webflux 控制器中结合 Flux 和 ResponseEntity
- windows - WSUS 中的“导入更新”选项已禁用
- java - 如果用户已从存储目录中删除项目表单recyclerview,如何删除它?
- python - 如何在python中将列表元素作为键添加到字典中
- nginx - Nginx 通配符反向代理同名