AngularJS中的http请求默认为异步的,请问如何设置为同步请求呢?--使用$q

在工作时遇到这样一个问题,在保存数据时,需要对保存的数据进行多次校验(与后台交互的校验),如果校验成功则执行保存操作,如果不成功则返回提示。话不多说,直接上代码

 

var checkFun1 = function () {
    return $q(function (resolve,reject) {
        $http.post('product/checkSellingPriceLessThanCostPrice',salePolicy).success(function (response) {
            if(response.result === 'success'){
                resolve(response.data);
            }else{
                reject();
            }
        });
    });

};

var checkFun2 = function () {
    return $q(function (resolve,reject) {
        $http.post('product/checkSellingPriceMoreThanGuidePrice',salePolicy).success(function (response) {
            if(response.result === 'success'){
                resolve(response.data);
            }else{
                reject();
            }
        });
    });
};

var checkFun3 = function () {
    return $q(function (resolve,reject) {
        $http.post('product/checkSellingPriceOutOfPriceRange',salePolicy).success(function (response) {
            if(response.result === 'success'){
                resolve(response.data);
            }else{
                reject();
            }
        });
    });

};

// 注意:城管提交时,如果不满足条件则不能提交,系管不满足条件只用提示即可,仍然可以提交
$q.all([checkFun1(), checkFun2(), checkFun3()]).then(function (data) {
    var invalidNum = 0;
    //data存储的时校验返回的信息
    data.forEach(function (item) {
        if(item){
            invalidNum++;
        }
    });

    if(invalidNum === 0){//当校验全部通过时执行保存操作
        $scope.modifyProductSubmit(salePolicy);
    }
});

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值