1.功能
解决javascript回调地狱
fs.readFile('./file1.txt', 'utf8', function(err, content1){ fs.readFile('./file2.txt', 'utf8', function(err, content2){ fs.readFile('./file3.txt', 'utf8', function(err, content3){ console.log(content1+content2+content3) }); }); })
安装eventProxy
npm install eventproxy
2.常用方法
①解决回调方法
emit:触发事件
after
all:告诉它你要监听哪些事件,并给它一个回调函数。ep.all('event1', 'event2', function (result1, result2) {})。
var fs = require('fs'); var EventProxy = require('eventProxy'); var ep = new EventProxy(); ep.all(['read_file1', 'read_file2', 'read_file3'], function(content1, content2, content3){ console.log(content1+content2+content3) }); ep.after('read_file', 3, function(contents){ console.log(contents.join()); }); fs.readFile('./file1.txt', 'utf8', function(err, content1){ ep.emit('read_file', content1+'ooxx'); }) fs.readFile('./file2.txt', 'utf8', function(err, content2){ ep.emit('read_file', content2); }) fs.readFile('./file3.txt', 'utf8', function(err, content3){ ep.emit('read_file', content3); })
②优化代码的方法
down
throw
fail
ep.fail(function(err){ console.log('this is fail function'); console.log(err); }); fs.readFile('./file4.txt', 'utf8', function(err, content){ if(err){ ep.throw(err); //ep.emit('error', err); } })