function create(addr) { reset(); var parts = addr.split(':', 2) , sock = hiredis.createConnection(parts[1], parts[0]); if (typeof opts.maxListeners !== 'undefined') { sock.setMaxListeners(opts.maxListeners); } sock.on('reply', function(data) { if (data instanceof Error) { ops.shift()(data); } else { ops.shift()(null, data); } }); sock.on('error', function(err) { var cb = ops.shift(); if (cb) cb(err); else throw new Error(err); }); return sock; }
return new Promise(function(resolve, reject) { var parts = addr.split(':', 2) , sock = hiredis.createConnection(parts[1], parts[0]); sock.once('reply', function(data) { sock.end(); if (data instanceof Error) return reject(data); var p = data[1].slice(0, 8); nodes.set(p, addr); stats.set(p, 0); resolve(); }); sock.once('error', function(err) { sock.end(); reject(err); }); sock.write('HELLO'); });