- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下示例代码来获取 uuid:
const Result = require('folktale/result')
const Future = require('fluture')
Future.prototype.flatMap = Future.prototype.chain
const fetch = Future.encaseP(require('node-fetch'))
const message = err => `ERROR: ${err.message}`
function getUuid () {
return fetch('https://httpbin.org/uuid')
}
const future = getUuid()
.map(response => {
const responseJson = response.json.bind(response)
const getResponseBody = Future.encaseP(responseJson)
return getResponseBody()
})
.map(obj => obj.uuid)
const result = future.fold(Result.Error, Result.Ok).fork(x => x, x => x)
console.log(result) // [Function: Sequence$cancel]
result.map(
x => {
return message(x)
},
x => {
console.log(x)
return x
}
)
结果不是可映射类型,当我调用 result.map
时抛出错误:
TypeError: result.map is not a function
最佳答案
fork
执行 future 并期望您处理在 fork
参数中提供的回调中的结果,更重要的是返回 cancel
函数,不是 next Future
,正如您所期望的那样,我在其结果上应用了 .map
。
将代码更改为:
const cancelToken = future
.fold(Result.Error, Result.Ok)
// if you wanna map result, do it here:
// .map(...)
.fork( // fork consumes the fluture and ends execution chain
ok => message(x),
err => { console.log(err); }
);
// call cancelToken() if you want to cancel it
关于javascript - 将 Fluture Future 转换为民间故事结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50361976/
这里解释了面向铁路编程(ROP): https://fsharpforfunandprofit.com/rop/ 有什么方法可以将此模式与 Fluture 一起使用 我可以像这样使用这两个辅助方法来执
我有以下示例代码来获取 uuid: const Result = require('folktale/result') const Future = require('fluture') Future
我有一个像这样的管道: S.pipe([ getRequestFile, // not async S.chain(saveTemporary),
我有一个这样的管道 const asyncFn = (x) => { return Future.tryP(() => Promise.resolve(x + ' str2')) }; con
背景 我正在使用 Fluture抽象 future 。 假设我有一个发出 GET 请求的函数。此功能可能成功或失败。 发出请求后,如果成功,则打印一条消息,如果失败,则记录错误并执行命令。 axios
我是一名优秀的程序员,十分优秀!