'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、还有一种特殊的操作,就是我想当这两个操作同时执行完成之后再执行对应的操作,
* */ 0
0
相关文章
javascript变量提升是什么_它如何影响代码执行【教程】
javascript能做什么_你了解它的全部潜力吗【教程】
什么是错误处理以及如何在javascript中进行它?【教程】
什么是javascript变量_如何正确声明和使用它们【教程】
javascript中什么是闭包_它有什么实际用途【教程】
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
C++ 设计模式与软件架构
本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。
7
2026.01.30
热门下载
相关下载
精品课程
相关推荐
/
热门推荐
/
最新课程








