From a7c767ce1e540f522d928130f4115adbdaee4a5d Mon Sep 17 00:00:00 2001 From: James Talmage Date: Wed, 14 Jan 2015 20:45:31 -0500 Subject: [PATCH] Use new es6 style promises internally. There is more code that could be refactored to use it as well. Waiting to see what the community thinks before proceeding. --- src/FirebaseAuth.js | 29 ++++++++++++++--------------- src/firebase.js | 20 ++++++++++---------- 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/src/FirebaseAuth.js b/src/FirebaseAuth.js index f266d98a..ba9b804d 100644 --- a/src/FirebaseAuth.js +++ b/src/FirebaseAuth.js @@ -222,24 +222,23 @@ */ _routerMethodOnAuthPromise: function(rejectIfAuthDataIsNull) { var ref = this._ref; - var deferred = this._q.defer(); - function callback(authData) { - if (authData !== null) { - deferred.resolve(authData); - } else if (rejectIfAuthDataIsNull) { - deferred.reject("AUTH_REQUIRED"); - } else { - deferred.resolve(null); + return this._utils.promise(function(resolve,reject){ + function callback(authData) { + if (authData !== null) { + resolve(authData); + } else if (rejectIfAuthDataIsNull) { + reject("AUTH_REQUIRED"); + } else { + resolve(null); + } + + // Turn off this onAuth() callback since we just needed to get the authentication data once. + ref.offAuth(callback); } - // Turn off this onAuth() callback since we just needed to get the authentication data once. - ref.offAuth(callback); - } - - ref.onAuth(callback); - - return deferred.promise; + ref.onAuth(callback); + }); }, /** diff --git a/src/firebase.js b/src/firebase.js index 4a2c05ac..3a2d3dbc 100644 --- a/src/firebase.js +++ b/src/firebase.js @@ -128,16 +128,16 @@ } applyLocally = !!applyLocally; - var def = $firebaseUtils.defer(); - ref.transaction(valueFn, function(err, committed, snap) { - if( err ) { - def.reject(err); - } - else { - def.resolve(committed? snap : null); - } - }, applyLocally); - return def.promise; + return new $firebaseUtils.promise(function(resolve,reject){ + ref.transaction(valueFn, function(err, committed, snap) { + if( err ) { + reject(err); + } + else { + resolve(committed? snap : null); + } + }, applyLocally); + }); }, $asObject: function () {