var app = angular.module('app', []); app.controller('Ctrl', function($q, $timeout) { function asyncHello(name) { var deferred = $q.defer(); $timeout(function() { deferred.resolve('Hello, ' + name); }, 1000); return deferred.promise; } var r = document.getElementById('result'); var promise = asyncHello('sato'); promise.then( function(msg) { r.innerHTML = msg; } ); });