Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@adaptivedev
Last active August 29, 2015 14:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save adaptivedev/80d12675ba1e83d424b1 to your computer and use it in GitHub Desktop.
Save adaptivedev/80d12675ba1e83d424b1 to your computer and use it in GitHub Desktop.
trying to resolve Ionic Promises problem: Uncaught ReferenceError: Promise is not defined at file:///android_asset/www/lib/ionic/js/ionic.bundle.js:11731
'use strict';
angular.module('boosterapp.utility', [])
.service('Utility', function($ionicPopup, $q, $rootScope, $state, Booster) {
var self = this;
var debug = 3; // debug level - higher means more verbose messages
this.popup = function(title, message) {
$ionicPopup.alert({
title: title,
template: message
});
}
this.goToState=function(theState) {
$state.go(theState);
}
//FB login button click event
this.asynchFacebookLogin = new Promise(function(resolve, reject)
{
var d = $q.defer;
//alert('doFbLogin');
var fbId = self.getFBuserId();
if(fbId === null) {
$d.resolve(fbId);
}
console.log('doFbLogin');
facebookConnectPlugin.
login
(
['public_profile', 'user_friends', 'email'],
// SUCCESS
function(res)
{
console.log("doFbLogin:res=" + JSON.stringify(res));
var fbId = res.authResponse.userID;
$d.resolve(fbId);
},
function(err)
{
var errLog = 'asynchFacebookLoginfacebookConnectPlugin:err'+err;
console.log(errorLog);
$d.reject(errLog);
}
)
console.log('doFbLogin:end');
});
this.asychGetLoginStatus = new Promise(function(resolve, reject)
{
console.log('asychGetLoginStatus');
var d = $q.defer();
console.log('asychGetLoginStatus:d='+d);
//d.notify('asychGetLoginStatus');
facebookConnectPlugin.getLoginStatus
(
function(res)
{
console.log('asychGetLoginStatus:getLoginStatus:res='+JSON.stringify(res));
fbId = res.authResponse.userID;
self.setProfileByFbId(fbId);
if(res.status + "" != "connected")
{
d.resolve(res);
} else
{
d.reject();
}
},
function(err){
console.log('facebookConnectPlugin.getLoginStatus:err='+err);
}
)
});
this.asyncLoginRegister = new Promise(function(resolve, reject)
{
var d = $q.defer();
console.log('asyncLoginRegister');
//var getProfileWsr = self.getProfileFromWs();
//if(getProfileWsr === null) {
return self.asychGetLoginStatus()
.then(function(result){
return self.asynchFacebookLogin()
}).then(function(result){
return Booster.getProfileByFbId(fbId)
}).then(function(result){
return Booster.register(data.id, data.first_name, data.last_name, data.email,"")
}).then(function(){
d = $q.resolve(response);
}).catch(function(err){
d = $q.reject(err);
});
});
var startUpcoming = function()
{
console.log('startUpcoming');
getProfileWsr = JSON.parse(getProfileWsr);
console.log('startUpcoming:getProfileWsr='+JSON.stringify(getProfileWsr));
self.setUserId(getProfileWsr.data.UserId);
self.updateDeviceId();
self.setProfileFromWs(getProfileWsr);
$state.go('app.upcoming');
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment