簡介
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",列印結果
}
})
謝謝觀看!!!