Reworked this._doNext(promise) to promise._settle(by this)