解决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 相关文章推荐
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
Mar 30 Javascript
jquery validate和jquery form 插件组合实现验证表单后AJAX提交
Aug 26 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
Sep 01 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
Nov 06 Javascript
js遍历map javaScript遍历map的简单实现
Aug 26 Javascript
深入理解bootstrap框架之第二章整体架构
Oct 09 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
Oct 21 Javascript
解决vue-cli webpack打包开启Gzip 报错问题
Jul 24 Javascript
layui的表单提交以及验证和修改弹框的实例
Sep 09 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
Mar 09 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
Apr 30 jQuery
vue 如何使用递归组件
Oct 23 Javascript
解决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学习之PHP变量
2006/10/09 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
jquery插件制作简单示例说明
2012/02/03 Javascript
js计算字符串长度包含的中文是utf8格式
2013/10/15 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
2013/12/10 Javascript
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
JavaScript获取浏览器信息的方法
2015/11/20 Javascript
Backbone.js框架中Model与Collection的使用实例
2016/05/07 Javascript
JavaScript ES6的新特性使用新方法定义Class
2016/06/28 Javascript
Vue 2中ref属性的使用方法及注意事项
2017/06/12 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
详解如何在angular2中获取节点
2017/11/23 Javascript
vue 之 .sync 修饰符示例详解
2018/04/21 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
babel7.x和webpack4.x配置vue项目的方法步骤
2019/05/12 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
[01:17:12]职来职往完美电竞专场
2014/09/18 DOTA
[13:38]2015国际邀请赛中国战队出征仪式
2015/05/29 DOTA
《Python之禅》中对于Python编程过程中的一些建议
2015/04/03 Python
matplotlib 输出保存指定尺寸的图片方法
2018/05/24 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
2019/04/29 Python
如何更优雅地写python代码
2019/07/02 Python
python垃圾回收机制(GC)原理解析
2019/12/30 Python
使用TensorFlow直接获取处理MNIST数据方式
2020/02/10 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
2020/02/25 Python
实例代码讲解Python 线程池
2020/08/24 Python
Free People中国官网:波西米亚风格女装服饰
2016/08/30 全球购物
Mountain Warehouse德国官网:英国户外零售商
2019/08/11 全球购物
工程管理专业个人求职信范文
2013/12/07 职场文书
电子银行营销方案
2014/02/22 职场文书
整改落实自查报告
2014/11/05 职场文书
创业计划书之网吧
2019/10/10 职场文书
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL
Golang 切片(Slice)实现增删改查
2022/04/22 Golang