Promise异步操作

Promise是一个承诺对象 存放着将来才会执行代码 主要获取异步操作得消息 
创建promise对象 new Promise(()=>{})
参数:回调函数(resolve,reject)
resolve----表示promise实例状态为fullfilled回调函数---表示请求成功得回调函数
reject ---表示promise实例状态为rejected回调函数 ----表示请求失败得回调函数
promise实例对象有三种状态:
pending 未操作/进行中
fullfilled 已成功
 rejected 已失败
promise实例方法:
then方法:当实例状态为fullfilled时候执行回调函数 resolve()
catch方法:当实例状态为rejected时候执行回调函数 reject()

// 封装ajax 或者 axios 使用promise
    // 封装工厂函数 得到一个基于promise得ajax请求
    function getPromise(method,url,data,params){
      // data---post携带参数 params---get请求携带参数
      return new Promise((resolve,reject)=>{
        var xhr = new XMLHttpRequest();
        xhr.open(method,url);
        xhr.send();
        xhr.onreadystatechange = function(){
          if(xhr.readyState===4){
            if(xhr.status===200){
              resolve(xhr.response)
            }else{
              reject(xhr.responseText)
            }
          }
        }
      })
    }
    let p1 = getPromise('get','http://121.199.0.35:8888/index/carousel/findAll');
    let p2 = getPromise('get','http://121.199.0.35:8888/index/category/findAll');
    console.log(p1,p2);
    p1.then(res=>{
      console.log(JSON.parse(res),'111')
    })
    p2.then(res=>{
      console.log(JSON.parse(res),'222')
    });

静态方法:
    1.Promise.all 参数:可迭代数据结构 一般是数组([多个promise实例]) 只有所有promise实例都fullfilled最终promise为fullfilled
      返回promise实例对象 
    2.any 参数:可迭代数据结构 一般是数组([多个promise实例])
      返回promise实例对象 只要有一个实例是fullfilled 就为fullfilled
    3.race 参数:可迭代数据结构 一般是数组([多个promise实例])
      返回实例先改变为fullfilled得promise实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值