解决angularjs中同步执行http请求的方法


Posted in Javascript onAugust 13, 2018

如下所示:

self.tableParams = new NgTableParams({}, {
  getData: function (params) {
    $http.post("rest/staff/page", $scope.req).success(function (data) {
      if (data != null && data != undefined) {
        $scope.staffs = data.data;
        params.total($scope.totalPage);
      }
    }).error(function (data) {
      $("#serverErrorModal").modal({show: true});
    });
 
    return $scope.staffs;
  }
});

上面这个示例中,getData方法要得到通过$http请求返回的值,然而在angularjs中$http永远都是异步的,也就是说return的值将一直为空;

网上的例子都是通过$q,promise来实现,我试了但是不行,应该是我自己的问题

然后突然想到$http本身就返回一个promise对象,何不直接使用?!代码如下

self.tableParams = new NgTableParams({'count': 10} , {
  getData: function (params) {
    var promise = $http.post("rest/staff/page", $scope.req);
    return promise.then(function (resut) {
      var response = resut.data;
      var total = response.otherData[0];
      params.total(total);
      return response.data;
    });
 
  }
});

直接这样return就可以实现同步获取数据了~

以上这篇解决angularjs中同步执行http请求的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
zeroclipboard 单个复制按钮和多个复制按钮的实现方法
Jun 14 Javascript
在Google 地图上实现做的标记相连接
Jan 05 Javascript
EasyUI实现二级页面的内容勾选的方法
Mar 01 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
Mar 27 Javascript
JS实现简单的图书馆享元模式实例
Jun 30 Javascript
jQuery仿淘宝网产品品牌隐藏与显示效果
Sep 01 Javascript
AngularJS使用ng-app自动加载bootstrap框架问题分析
Jan 04 Javascript
React-Native中props具体使用详解
Sep 04 Javascript
微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析
Nov 27 Javascript
vue-router两种模式区别及使用注意事项详解
Aug 01 Javascript
Vue结合路由配置递归实现菜单栏功能
Jun 16 Javascript
如何在vue中使用kindeditor富文本编辑器
Dec 19 Vue.js
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
Aug 13 #Javascript
AngularJS使用$http配置对象方式与服务端交互方法
Aug 13 #Javascript
angularjs $http调用接口的方式详解
Aug 13 #Javascript
Javascript格式化并高亮xml字符串的方法及注意事项
Aug 13 #Javascript
vue实现文件上传功能
Aug 13 #Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
Aug 13 #Javascript
实例详解BootStrap的动态模态框及静态模态框
Aug 13 #Javascript
You might like
php短信接口代码
2016/05/13 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
2016/09/21 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
2017/06/09 PHP
JavaScript实际应用:innerHTMl和确认提示的使用
2006/06/22 Javascript
nicejforms——美化表单不用愁
2007/02/20 Javascript
Javascript this指针
2009/07/30 Javascript
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
Javascript 构造函数,公有,私有特权和静态成员定义方法
2009/11/30 Javascript
js TextArea的选中区域处理
2010/12/28 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
2013/07/30 Javascript
js判断字符是否是汉字的两种方法小结
2014/01/03 Javascript
javascript 网页进度条简单实例
2017/02/22 Javascript
bootstrap switch开关组件使用方法详解
2017/08/22 Javascript
vue页面离开后执行函数的实例
2018/03/13 Javascript
JavaScript 实现继承的几种方式
2021/02/19 Javascript
[33:17]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python中encode()方法的使用简介
2015/05/18 Python
Python自动登录126邮箱的方法
2015/07/10 Python
Django 前后台的数据传递的方法
2017/08/08 Python
python爬取拉勾网职位数据的方法
2018/01/24 Python
python3 常见解密加密算法实例分析【base64、MD5等】
2019/12/19 Python
HTTP状态码详解
2021/03/18 杂记
Web前端页面跳转并取到值
2017/04/24 HTML / CSS
html5 冒号分隔符对齐的实现
2019/07/31 HTML / CSS
俄罗斯小米家用电器、电子产品和智能家居商店:Poood.ru
2020/04/03 全球购物
JAVA和C++的区别
2013/10/06 面试题
介绍一下MD5加密算法
2016/11/12 面试题
学前教育教师求职自荐信
2013/09/22 职场文书
一份创业计划书范文
2014/02/08 职场文书
村干部群众路线教育活动对照检查材料
2014/10/01 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
企业党建工作总结2015
2015/05/26 职场文书
房产电话营销开场白
2015/05/29 职场文书
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS