JSFiddle - React, Tailwind, and code Playground
HTML
<script src="//da189i1jfloii.cloudfront.net/js/kinvey-html5-1.1.0.min.js"></script>
<body ng-app="app">
<div ng-controller='AppCtrl'>
<h2>Be Sure You Have the Console Open!</h2>
<button ng-click="simplePing()" >Simple Ping</button>
<button ng-click="complexPing()" >Complex Ping</button>
</div>
</body>
JavaScript
var app = angular.module('app', []);
app.controller('AppCtrl', ['$scope', 'KinveyTest', function($scope, KinveyTest) {
$scope.pingResponse = 'Nothing Yet!';
$scope.simplePing = function() {
KinveyTest.noReturnPing();
};
$scope.complexPing = function() {
KinveyTest.needResultOfPing();
};
}]);
app.factory('KinveyTest', function($q, $rootScope) {
var pingKinveyNoReturn = function() {
console.log('Simple Kinvey Ping');
var promise = Kinvey.ping();
promise.then(function(response) {
console.log('Kinvey Ping Success. Kinvey Service is alive, version: ' + response.version + ', response: ' + response.kinvey);
}, function(error) {
console.log('Kinvey Ping Failed. Response: ' + error.description);
});
};
var pingKinveyWithResult = function() {
console.log('Complex Kinvey Ping');
var deferred = $q.defer();
var kinveyPromise = Kinvey.ping();
kinveyPromise.then( function(response) {
deferred.resolve(response);
$rootScope.$apply();
}, function(error) {
console.log('Errored out!: ');
console.log(error);
});
return deferred.promise;
};
return {
noReturnPing: function() {
pingKinveyNoReturn();
},
needResultOfPing: function() {
// Calling a kinvey ping wrapped in an angular promise. Never gets resolved.
console.log('Triggering a complex ping. I hope I get something back!');
pingKinveyWithResult().then( function(result) {
console.log('Got result back from Kinvey!');
console.log(result);
}, function(error) {
console.log('I crashed and burned!');
console.log(error);
});
}
}
});