以讀取文件爲例:javascript
const fs = require('fs'); //callback function fs.readFile('package.json',(val,err) => { if(err) throw err; console.log(val); });
//promise let fs_promise = function(file){ return new Promise((resolve,reject)=>{ fs.readFile(file,(val,err) => { if(err) reject(err); resolve(val); }); }); }; fs_promise('package.json') .then((data) => console.log(data));
//Generator + promise function* gen(file){ return yield fs_promise(file); } let g = gen('package.json'); g.next();
//Generator + promise + co const co = require('co'); co(gen('package.json'));
//Generator + thunk + co let fs_thunk = function(file){ return function(callback){ return fs.readFile(file,callback); } }; function* gen(file){ let f1 = yield fs_thunk(file); console.log(f1.toString()); } const co = require('co'); co(gen('package.json'));
//async + await NOT SUPPORT YET async function readFileAsync(file){ return await fs.readFile(file); } readFileAsync('package.json');