您的位置:首页 > Web前端 > AngularJS

angular 异步处理模式promise---$q

2016-02-16 16:30 197 查看
promise是一种异步处理模式,因为无法确定异步何时调用回调函数,所以需要promise告知。

api.action('s101', query) //action方法会返回$q.defer().promise
.then(
function(data) {

//如果请求成功执行
var vdata = api.data_isok(data);
if(vdata) {
mjSession.save(vdata);
mjModalS.close();
} else {
alert(mjLang.T('5_85')+'!');
}
},
function() {

//如果请求失败执行
alert('error');
}
)
.finally(

//无论请求成功或者失败都要执行

	function() {
$scope.deleteLoading = false;
});

)


Promise的基本用法
上面代码表示, $q.defer() 构建的 deffered 实例的几个方法的作用。
如果异步操作成功,则用resolve方法将Promise对象的状态变为“成功”(即从pending变为resolved);
如果异步操作失败,则用reject方法将状态变为“失败”(即从pending变为rejected)。

如果异步操作未完成,则用notify方法将状态变为unfulfilled状态,在resolve或reject之前可以被多次调用。
最后返回 deferred.promise ,我们就可以链式调用then方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: