Fix flipped errored / ended handlers

This commit is contained in:
Ben Gotow 2016-07-12 12:15:46 -07:00
parent b0a6ec066b
commit 674da27296

View file

@ -218,19 +218,19 @@ class IMAPConnection extends EventEmitter {
};
onErrored = (error) => {
returned = true;
reject(error || new Error("Unspecified IMAP error."));
reject(error);
};
this._imap.once('error', onEnded);
this._imap.once('end', onErrored);
this._imap.once('error', onErrored);
this._imap.once('end', onEnded);
const cresolve = (...args) => (!returned ? resolve(...args) : null)
const creject = (...args) => (!returned ? reject(...args) : null)
return callback(cresolve, creject)
}).finally(() => {
if (this._imap) {
this._imap.removeListener('error', onEnded);
this._imap.removeListener('end', onErrored);
this._imap.removeListener('error', onErrored);
this._imap.removeListener('end', onEnded);
}
});
}