这次给大家带来Angularjs的promise对象详解,使用Angularjs的promise对象时注意事项有哪些,下面就是实战案例,一起来看一下。
promise是什么?要了解它,需要先从我们面临的问题开始讲起。在操作ajax异步请求时候,必须添加一个callback函数,用于处理请求成功后的逻辑,但是这种方式是以牺牲控制流,异常处理为代价的,并且还有可能陷入callback函数嵌套中,流程复杂,代码臃肿。在angularjs里面,处理异步,我们可能首先会想到用$watch监听器来实现,但是过多的监听器,会影响性能,代码结构上也会比较乱。
为了解决这种情况,在Angularjs里面引入了promise对象的概念,确切的说,它是一种优雅的处理异步编程的模式,可以有效地解决回调函数的繁琐,并以一种同步的方式去处理业务流程。同时允许在回调中采用链式写法,接下来我们详细的说明promise对象的使用方法:
promise的基本概念和使用方法
1、为了更加形象的说明promise的概念,进一步了解她的属性和方法,在这里我们通过一个例子来比拟描述。
例如:一个名为A的客户,向一家名为B的公司要求开发一个WEB页面,B公司答应三天可以做完,这成活就是一个promise对象,它本质上是A客户发起来的延期业务,在Angular里面我们可以理解为通过$q对象调用defer方法创建了一个延期对象的过程。
2、接下来在这三天当中,客户可能会与公司进行开发进度交流,这可以理解为调用延期对象的8e99a69fbe029cd4e2b854e244eab143notify128dba7a3a77be0113eb0bea6ea0a5d0方法发送消息的过程,表明这个延期业务的状态是"未完成或者进行中";如果在三天以后,B公司将A客户要求开发的页面正常交付,则可以理解为调用眼器对象中的8e99a69fbe029cd4e2b854e244eab143resolve128dba7a3a77be0113eb0bea6ea0a5d0方法过程,表明这个延期业务的状态是"已完成";而如果B公司在制作过程中,发现无法实现,则同坐A客户不能交付,这可以理解为调用延期对象中的8e99a69fbe029cd4e2b854e244eab143reject128dba7a3a77be0113eb0bea6ea0a5d0方法的过程,表明这个延期业务的状态是"无法完成"。
3、如果B公司在接到A客户需求的时候,发现之前做过一个项目与现在需求完全一致,决定将原来做好的项目直接给B公司,客户也很满意。这种情况没有产生延期业务,则可以理解为通过$q对象调用when方法的过程。
4、通过这个例子,我们可以群体给出的看出,A客户和B公司彼此都没有小号太多的时间,过程也非常通常,这正是promise对象的重要特征。此外,从例子中我们形象的知道了promise对象的创建过程。以及defer()、notify()、reject()、when()方法表示的功能。
下面,我们正是来介绍promise对象的创建过程。想要在Angular中创建一个promise对象,必须在模板中先注入$q服务,并先调用defer方法创建一个延期对象,代码如下:
angular.module("a",[]) .controller("c",["$scope","$q",function($scope,$q){ var defer=$q.defer(); }])
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
相关阅读:
以上是Angularjs的promise对象详解的详细内容。更多信息请关注PHP中文网其他相关文章!