简介
folktale中的函子处理异步任务,在这里使用的是2.x的版本
//引用find和split方法
const { find, split } = require('lodash/fp');
//引用fs
const fs = require('fs');
//引用task
const { task } = require('folktale/concurrency/task');
function readFile(fileName) {
return task(resolver => {
fs.readFile(fileName, 'utf-8', (err, data) => {//第一个参数文件名,第二个参数编码格式,第三个参数处理结果
if (err) resolver.reject(err)//报错预警
resolver.resolve(data);//成功回调
})
})
}
readFile('./package.json')//执行函数
.map(split('\n'))//首先截取字符串
.map(find(data => {//寻找数组中符合的元素
return data.includes('version')
}))
.run()//运行函数
.listen({//监听变化
onRejected: error => {
console.log(error);
},
onResolved: success => {
console.log(success); // "version": "1.0.0",打印结果
}
})
谢谢观看!!!