AngularJS $q Promise サンプル04
var app = angular.module('app', []);
app.controller('Ctrl', function($q, $timeout) {
function asyncHello(name) {
var deferred = $q.defer();
$timeout(function() {
deferred.notify(name + 'を受け取りました。');
if(typeof(name) === 'string') {
deferred.resolve('Hello, ' + name);
}
else {
deferred.reject(name + 'は文字列ではありません。');
}
}, 1000);
return deferred.promise;
}
var r = document.getElementById('result');
var promise = asyncHello('sato');
promise.then(
function(msg) {
r.innerHTML += msg;
},
function(msg) {
r.innerHTML += msg;
},
function(msg) {
r.innerHTML += msg + '
';
}
);
});