var thunkify = require('thunkify');
var fs = require('fs');
var read = thunkify(fs.readFile);
read('books.json', 'utf8')(function(err, res){
console.log(res);
});
thunkify无非就是包一层方法,让所有方法的callback统一 但是 为什么调用时候
read(参数)(方法);
这里好奇怪! 这是什么语法? 如何来理解
7 回复
这是不彻底的柯里化,跟ES6没什么关系。
thunkify返回的read方法,它接受参数fileName, encodeType后再返回一个方法read2,read2接受一个回调函数callback作为参数,并将以 [fileName, encodeType, (包装过的callback)] 作为参数执行先前thunkify时传入的方法fs.readFile。
见此 https://github.com/visionmedia/node-thunkify/blob/master/index.js
逻辑并不复杂。