ep.group('got_file'); // 约等价于 function (err, data) { if (err) { return ep.emit('error', err); } ep.emit('got_file', data); };
ep.done('tpl'); // 等价于 function (err, content) { if (err) { // 一旦发生异常,一律交给error事件的handler处理 return ep.emit('error', err); } ep.emit('tpl', content); }
看这个的约等价关系,ep.done和ep.group在用法上应该是差不多的,区别是结果顺序与emit发射的顺序相关,但是在使用的时候,ep.done成功的时候,换成ep.group会报错。
var index = that._after[group].index;
TypeError: Cannot read property 'find_question_group' of undefined at EventProxy.group (e:\mycode\github\zhihu\node_modules\eventproxy\lib\eventproxy.js:443:28)
在eventproxy源码中
EventProxy.prototype.group = function (eventname, callback) { var that = this; var group = eventname + '_group'; var index = that._after[group].index; that._after[group].index++;
that = undefined ?? 求解答~~