例如,我见过这样的函数,使用起来很方便:
myFunction(data).
success(function() { // success! }).
fail(function() { // fail! });
我看不到如何实现这一点的明显方法。这是我查看 Node.js 文档后的悲伤尝试:
var EventEmitter = require('events').EventEmitter;
var testEmitter = function(x) {
var e = new EventEmitter();
if (x) {
e.emit('success', 'got: ' + x);
} else {
e.emit('failure', 'no x passed')
}
return e;
}
显然,当您尝试调用它时,这将不起作用:
testEmitter('hello').
success(console.log('success!')).
failure(console.log('failure!'));
// TypeError: Object #<EventEmitter> has no method 'success'
实现此模式的最佳方法是什么?