Promises: Simple
by JuanMa Garrido
HTML
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0-beta.5/angular.min.js"></script>
{{2+3}}
<!-- https://thinkster.io/a-better-way-to-learn-angularjs/promises -->
JavaScript
angular.module('app', [])
.factory('getData', getData)
.run(function(getData) {
var promise = getData()
.then(function(string) {
console.log(string)
}, function(error) {
console.error(error)
})
.finally(function() {
console.log('Finished at:', new Date())
})
})
function getData($timeout, $q) {
return function() {
var defer = $q.defer()
// simulated async function
$timeout(function() {
defer.resolve('data received!')
}, 2000)
return defer.promise
}
}