From 47438a459cde8c69d78eaf617d226aeb71932dc6 Mon Sep 17 00:00:00 2001 From: Olli Varis Date: Fri, 9 Mar 2018 09:37:15 +0200 Subject: [PATCH] Modifies push() to return ThenableReference --- lib/modules/database/Reference.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/modules/database/Reference.js b/lib/modules/database/Reference.js index 67d2c9c5..c3d716a2 100644 --- a/lib/modules/database/Reference.js +++ b/lib/modules/database/Reference.js @@ -299,15 +299,15 @@ export default class Reference extends ReferenceBase { * @param onComplete * @returns {*} */ - push(value: any, onComplete?: Function): Reference | Promise { + push(value: any, onComplete?: Function): ThenableReference { if (value === null || value === undefined) { - return new Reference( + return new ThenableReference( this._database, `${this.path}/${generatePushID(this._database._serverTimeOffset)}` ); } - const newRef = new Reference( + const newRef = new ThenableReference( this._database, `${this.path}/${generatePushID(this._database._serverTimeOffset)}` ); @@ -890,3 +890,12 @@ export default class Reference extends ReferenceBase { return SyncTree.removeListenersForRegistrations(registrations); } } + +// eslint-disable-next-line no-unused-vars +declare class ThenableReference<+R> extends Reference { + then( + onFulfill?: (value: R) => Promise | U, + onReject?: (error: any) => Promise | U + ): Promise; + catch(onReject?: (error: any) => Promise | U): Promise; +}