diff --git a/index.js b/index.js index 910b5bcf91..5397e94e0d 100644 --- a/index.js +++ b/index.js @@ -301,18 +301,8 @@ RedisClient.prototype.init_parser = function () { this.reply_parser = new this.parser_module.Parser({ return_buffers: self.options.return_buffers || self.options.detect_buffers || false }); - - // "reply error" is an error sent back by Redis - this.reply_parser.on("reply error", function (reply) { - self.return_error(reply); - }); - this.reply_parser.on("reply", function (reply) { - self.return_reply(reply); - }); - // "error" is bad. Somehow the parser got confused. It'll try to reset and continue. - this.reply_parser.on("error", function (err) { - self.emit("error", new Error("Redis reply parser error: " + err.stack)); - }); + this.reply_parser.send_error = this.return_error.bind(self); + this.reply_parser.send_reply = this.return_reply.bind(self); }; RedisClient.prototype.on_ready = function () { diff --git a/lib/parser/hiredis.js b/lib/parser/hiredis.js index 97ece3b08e..57a1cfb4ab 100644 --- a/lib/parser/hiredis.js +++ b/lib/parser/hiredis.js @@ -1,8 +1,6 @@ 'use strict'; -var events = require("events"), - util = require("util"), - hiredis = require("hiredis"); +var hiredis = require("hiredis"); exports.name = "hiredis"; @@ -10,11 +8,8 @@ function HiredisReplyParser(options) { this.name = exports.name; this.options = options; this.reset(); - events.EventEmitter.call(this); } -util.inherits(HiredisReplyParser, events.EventEmitter); - exports.Parser = HiredisReplyParser; HiredisReplyParser.prototype.reset = function () { @@ -34,9 +29,9 @@ HiredisReplyParser.prototype.execute = function (data) { } if (reply && reply.constructor === Error) { - this.emit("reply error", reply); + this.send_error(reply); } else { - this.emit("reply", reply); + this.send_reply(reply); } } }; diff --git a/lib/parser/javascript.js b/lib/parser/javascript.js index 5772ad7990..991761b1ec 100644 --- a/lib/parser/javascript.js +++ b/lib/parser/javascript.js @@ -1,7 +1,6 @@ 'use strict'; -var events = require("events"), - util = require("util"); +var util = require("util"); function Packet(type, size) { this.type = type; @@ -20,8 +19,6 @@ function ReplyParser(options) { this._reply_type = null; } -util.inherits(ReplyParser, events.EventEmitter); - exports.Parser = ReplyParser; function IncompleteReadBuffer(message) { @@ -286,11 +283,3 @@ ReplyParser.prototype._packetEndOffset = function () { ReplyParser.prototype._bytesRemaining = function () { return (this._buffer.length - this._offset) < 0 ? 0 : (this._buffer.length - this._offset); }; - -ReplyParser.prototype.send_error = function (reply) { - this.emit("reply error", reply); -}; - -ReplyParser.prototype.send_reply = function (reply) { - this.emit("reply", reply); -}; diff --git a/test/parser/javascript.spec.js b/test/parser/javascript.spec.js index dc519f8468..693ad45f52 100644 --- a/test/parser/javascript.spec.js +++ b/test/parser/javascript.spec.js @@ -11,7 +11,7 @@ describe('javascript parser', function () { assert.deepEqual(reply, [['a']], "Expecting multi-bulk reply of [['a']]"); reply_count++; } - parser.on("reply", check_reply); + parser.send_reply = check_reply; parser.execute(new Buffer('*1\r\n*1\r\n$1\r\na\r\n'));