promise 是一种用异步方式处理值的方法,promise是对象,代表了一个函数最终可能的返回值或抛出的异常。在与远程对象打交道非常有用,可以把它们看成一个远程对象的代理。 要在Angular中创建promise需要使用内置的$q服务。先用factory定义一个服务,注入$q服务。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...
when() 传入一个不确定的参数,如果符合Promise标准,就返回一个promise对象。 在Promise中,定义了三种状态:等待状态,完成状态,拒绝状态。 关于状态有几个规定: 1 状态的变更是不可逆的 2 等待状态可以变成完成或者拒绝 defer()方法 在$q中,可以使用resolve方法,变成完成状态;使用reject方法,变成拒绝状态。
$scope.test=1;//这个只是用来测试angularjs是否正常的,没其他的作用vardefer1 = $q.defer();varpromise1 = defer1.promise; promise1 .then(function(value){console.log("in promise1 --- success");console.log(value); },function(value){console.log("in promise1 --- error");console.log(value)...
angular提供了http服务来同服务端进行通信,http服务队浏览器的XMLHttpRequest对象进行了封装,让我们可以以ajax的方式来从服务器请求数据。 $http服务是一个接受一个参数的函数,参数的类型是对象,用来配置生成的http的请求,该函数返回一个promise对象(关于promise规范,可以看看这篇文章) var promise = $http({ method:...
q服务是AngularJS中自己封装实现的一种Promise实现,相对与Kris Kwal's Q要轻量级的多。 先介绍一下$q常用的几个方法: defer() 创建一个deferred对象,这个对象可以执行几个常用的方法,比如resolve,reject,notify等 all() 传入Promise的数组,批量执行,返回一个promise对象 ...
承诺(Promise)兑现了(resolved),于是老爸决定开始为周日的捕鱼做准备。 结局B:同样成功获得了天气预报,雨天:( 儿子成功获得了天气预报,只不过是乌云密布,要下雨。承诺(Promise)兑现了(resolved),只是老爸决定呆在家里,因为天气很糟糕。 结局C:没法获得天气预报:-/ 出了问题,儿子没法得知天气预报,因为雾很大,就算...
q服务是AngularJS中自己封装实现的一种Promise实现,相对与Kris Kwal's Q要轻量级的多。先介绍一下$q常用的几个方法:defer() 创建一个deferred对象,这个对象可以执行几个常用的方法,比如resolve,reject,notify等all() 传入Promise的数组,批量执行,返回一个promise对象when() 传入一个不确定的参数,如果符合Promise...
promise是一种用异步的方式处理值的方法,promise是对象,代表了一个函数最终可能的返回值或者抛出的异常,在与远程对象打交道时我们可以把他看作是远程对象的一个代理。 如果说是promise也是异步处理方式的一种,那么我们会想起它和XHR和$.ajax有啥区别呢?
promise.then(function (data) { //成功后的逻辑处理 }, function (error) { //失败后的逻辑处理 }); //模拟通过--实际应该是一个异步的callback中调用 defer.resolve('[data]'); //模拟拒绝--实际应该是一个异步的callback中调用 defer.reject('[data]'); ...
the request is successful, the promise resulting from the $http.post() is resolved and the view is rendered. But if the request fails (timeout or internal error for eg.), the promise is never resolved and the the view is never rendered. How can I deal with request failure usingresolve...