在Angular中使用promise
来源:互联网 发布:centos 重启后ip消失 编辑:程序博客网 时间:2024/04/30 21:44
在ng中最好将网络请求放在service中,从而简化controller,使controller专注做自己的“桥梁”工作,即连接数据与视图。比如我们在做一个通讯录,所以我们可以这样做:
1.建一个service叫addressBook.service.js
(function () { 'use strict'; angular .module('gulpAngularProject') .service('addressBookService', addressBookService); function addressBookService ( $http,$q ) { /** * 用于多个接口同时请求 * @param taskArray (array) [promise任务的数组] */ this.promiseAll = function(taskArray) { return $q.all(taskArray); }, /** * 获得通讯录列表 */ this.getUserInfoContactList = function () { var defered = $q.defer(); $http({ method: 'GET', url: 'getUserInfoContactList' }) .success(function (data) { defered.resolve(data); }) .error(function (err) { defered.reject(err); }); return defered.promise; } }})();
在这里我们需要用
2.然后在controller中就可以这样用:
(function () { 'use strict'; angular .module('gulpAngularProject') .controller('addressBookController', addressBookController); function addressBookController ( addressBookService ) { // 处理一个请求成功回调后再处理另一个请求的情况 addressBookService.getUserInfoContactList() .then(function (resolveData) { // 成功返回的数据 console.log(resolveData); // 返回这个请求成功后要处理的另一个请求,所以下面又可以then下去 return addressBookService.getUserInfoContactList() }) .then(function (resolveData) { console.log(resolveData); }) .catch(function (rejectData) { // 错误的统一捕捉 console.log(rejectData); }); // 处理多个请求同时发起的情况 var task1 = addressBookService.getUserInfoContactList(); var task2 = addressBookService.getUserInfoContactList(); var task3 = addressBookService.getUserInfoContactList(); // 使用在addressBookService里封装的方法,其实就是$q.all(taskArray) addressBookService.promiseAll([task1,task2,task3]) .then(function (resolveArray) { // 返回的是task1、2、3成功后的数据数组 console.log(resolveArray); }) .catch(function (rejectData) { console.log(rejectData); }); }})();
0 0
- 在Angular中使用promise
- promise对象,以及其在Angular中的使用
- Javascript 在循环中使用Promise对象
- angular promise
- 约战Angular中Promise(1)
- 约战Angular中Promise(2)
- 在angular应用中使用HTML组件
- 在Angular项目中使用PrimeNG组件
- 如何在Angular中使用jquery
- 在Node.js中使用promise摆脱回调金字塔
- Angular使用Promise解决多个异步回调问题
- 了解Promise Angular(转)
- Angular(五)Promise
- angular $q,defer,promise
- JavaScript中Promise的使用
- 在Angular框架中使用TinyMCE在线编辑器
- angular中使用a标签在PC端下载文件
- 在NativeScript-angular应用中使用本地设备剪切板
- 接收通知中的语音输入(Receiving Voice Input in a Notification)
- 如何蒸螃蟹?教你蒸螃蟹3个小窍门
- 面向对象基础(一)
- “呼死你”重出江湖 如何避免骚扰电话?
- VHDL_3641BS四个7段数码管显示实验
- 在Angular中使用promise
- Android_app完美退出程序
- CRectTracker(橡皮筋)类的使用
- 理解Java传参
- 值得记录的面试题目(算法工程师)
- 各类开源库使用
- 呼叫中心如何培养新员工
- LINUX抓包命令详解-TCPdump
- AJAX基本内容