$q异步操作使用按钮是什么
程序员文章站
2022-04-20 15:58:59
...
'use strict'; angular.module('app').controller('positionCtrl',['$q','$http','$state','$scope','cache',function ($q,$http,$state,$scope,cache) { $scope.isLogin = false; function getPosition() { var def = $q.defer(); $http.get('data/position.json',{ //1 params:{ id : $state.params.id } }).success(function(resp){ $scope.position = resp; def.resolve(resp); }).error(function (err) { def.reject(err); }); return def.promise;//2 } function getCompany(id) { $http.get('data/company.json?id='+id).success(function(resp){ $scope.company = resp; }) }; getPosition().then(function(obj){//4 getCompany(obj.companyId);//5 }); $q.all([fun1(),fun2()]).then(function (result) {})//6}]);/* * $q是为了解决异步的问题 * 1、这里有个异步请求,我们在前面建一个$q.defer()函数来创建一个defer对象,延迟加载对象, * 2、在异步请求下面返回def.promise属性,它也是一个对象,当我们处理完异步请求/操作的时候,我们就调用它的resolve()函数,把需要传入的参数传入进来, * 当发送错误的时候,我在调用reject()函数, * 3、这样当我们直接调用getPosition()函数的时候,得到的却是promise对象, * 4、这个promise对象对象有一个then函数,这个then函数的作用就是当我们的异步请求调用resolve()之后, * 5、它就会调用第一个传入的函数,同时把resolve()传入的参数传入进来。这样就可以把一个异步的操作变成一个同步的写法。 * * * 6、还有一种特殊的操作,就是我想当这两个操作同时执行完成之后再执行对应的操作, * */
以上就是$q异步操作使用按钮是什么的详细内容,更多请关注其它相关文章!
推荐阅读
-
异步操作的使用场景
-
关于angularjs异步操作后台请求时,用$q.all排列先后顺序的问题
-
C# 线程知识--使用Task执行异步操作
-
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
-
Python异步操作MySQL示例【使用aiomysql】
-
PHP使用gearman进行异步的邮件或短信发送操作详解
-
WPF中使用DataGrid时操作列按钮问题
-
asp.net core中,使用CancellationToken在用户终止请求时取消所有异步操作+ abp中的设计
-
物联网使用的是什么操作系统?
-
Atitit 在线机器人 自动化技术一览 目录 1. 俩个要点 1 1.1. 识别控件(对话框 按钮 列表等) 1 1.2. Dom控件操作 1 1.3. 鼠标键盘操作 api 1 2. 可以使用