AngularJS $q Promise サンプル05
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 p1 = asyncHello('sato');
var p2 = asyncHello(326);
var successCallback = function(msg) {
r.innerHTML += msg + '
';
};
var errorCallback = function(msg) {
r.innerHTML += msg + '
';
};
var notifyCallback = function(msg) {
r.innerHTML += msg + '
';
};
p1.then(successCallback, errorCallback, notifyCallback);
p2.then(successCallback, errorCallback, notifyCallback);
});