ES6-day03(三)(Promise对象调用ajax函数封装)

1.Promise对象调用ajax函数封装

这里因为url,method,data这些形参的名字跟本来的ajax函数内的属性的属性名相同,所以这里可以把’属性名:属性值,’ 简写成 ‘属性名,

 //封装Promise对象,方便异步操作  类似myAjax
         function send(url,method,data){
            //return promise对象
            return new Promise((resolve,reject)=>{
                $.ajax({
                    //因为属性名跟变量名一样了,所以本来是url:url,这样写的,但是变量名跟形参名一样就可以写成url,
                    url,
                    method,
                    data,
                    success(res){
                        resolve(res);
                    },
                    error(err){
                        reject(err);
                    }
                })
            });
         }

以上是用Promise对象调用ajax函数,并对其进行封装,下面用例子来说明具体用法

        //  send('http://39.97.103.246:8888/manager/category/findAllCategory','get',{})
        //  .then((res)=>{
        //      console.log(res);
        //  })
        //  .catch((err)=>{
        //     console.log(err);
        //  });
        
        //  send('http://39.97.103.246:8888/manager/article/findArticle','get',{page:0,pageSize:10})
        //  .then((res)=>{
        //      console.log(res);
        //  })
        //  .catch((err)=>{
        //      console.log(err);
        //  })


         //  生成两个Promise对象  p1 , p2
         let p1 = send('http://39.97.103.246:8888/manager/category/findAllCategory','get',{});
         let p2 =  send('http://39.97.103.246:8888/manager/article/findArticle','get',{page:0,pageSize:10});
         

变量等于声明并且封装好的send函数,这样得到的是一个Promise对象,接着对promise对象进行合并成数组的操作

// all是等待 合并p1,p2结果,把结果都放在p3中,无论谁先完成,都要等另一个完成才会执行p3的then或catch,且只有两个都成功了,p3才会成功,两个有一个失败,p3都是失败
        //  let p3 = Promise.all([p1,p2]);
        //  p3.then((res)=>{
        //     console.log(res,'---');
        //  }).catch((err)=>{
        //     console.log(err,'+++');
        //  })


        //race是赛跑 比较几个对象之间谁最先完成就用谁的数据,这里仅比较了两个对象p1,p2的
         let p3 = Promise.race([p1,p2]);
         p3.then((res)=>{
            console.log(res,'---');
         }).catch((err)=>{
            console.log(err,'+++');
         })

race方法是返回传入的几个对象中最先先完成自己的全部代码的对象,比如p1先完成了,p3就等于p1对象,这里比较的对象不仅限于两个,可以是很多个

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值