简介
函子可以把我们控制副作用进行异常处理,还可以去处理异步任务,
因为在异步操作中会出现通往地狱之门的回调。
使用task函子可以避免出现回调的嵌套,因为异步任务的实现归复杂和这块使用了folktale,
这个库中提供的task函子来进行演示。folktale是个标准的函数式编程库,它和lodash、ramda不同的是,
它里面没有提供功能性的函数,比如lodash和ramda 的中都提供了很多数组和字符串操作相关的方法。
但是folk tale中只提供了一些跟函数式处理相关的操作,例如composed/curry/柯里化。
那它里边还提供了一些函子,比如task,maybe 、either等等,那接下来呢,
我们先来演示一下folk tale这个库中的compose和curry如何去使用,
那么稍后再去演示使用task函子处理异步任务
安装和演示
cnpm i folktale //安装
const { compose, curry } = require('folktale/core/lambda');
const { first, toUpper } = require('lodash/fp');
let arr1 = ['first', 'second'];
const result1 = compose(first, toUpper); //compose 组合函数 拿到第一个元素 第一个字符大写
console.log(result1(arr1)); //F
let result2 = curry(2, (num1, num2) => num1 + num2)
//第一个参数2是为了指明 第二个函数里面有几个参数
console.log(result2(10, 20)); //30
console.log(result2(10, 990)); //1000
谢谢观看,如有不足,敬请指教