ES6 Promise

什么是Promise

Promise 是异步编程的一种解决方案,是对异步的执行结果的描述对象。

Promise最大的好处是在异步执行的流程中,把执行代码和处理结果的代码清晰地分离了。解决回调地狱问题。

Promise还可以做更多的事情,比如,有若干个异步任务,需要先做任务1,如果成功后再做任务2,任何任务失败则不再继续并执行错误处理函数。

promise有三种状态:pending(初始状态),fulfiled(成功时的状态),rejected(失败时的状态);状态一旦改变,就不会再变。创造promise实例后,它会立即执行。

 

基本用法

 new Promise((resolve, reject) => {
      setTimeout(() => {
        resolve("成功")  //将Promise的状态修改为成功
        // reject("失败")  //将Promise的状态修改为失败
      }, 1000);
    }).then((res) => {  //成功
      console.log(res)
    }, (err) => {  //失败
      console.log(err)
    })

  

resolve就是把Promise的状态从初始状态修改为成功状态并将异步操作之后的结果作为参数传递出去

reject就是把Promise的状态从初始状态修改为失败状态并将异步操作报的错作为参数传递出去

 

使用Promise发起请求

function XML(url) {
      let promise = new Promise((resolve, reject) => { //创建Promise实例
        let Xmlhttml = new XMLHttpRequest() //创建一个xmlhttp实例
        Xmlhttml.onreadystatechange = function () {
          if (Xmlhttml.readyState === 4) {  //判断数据读取是否结束
            if (Xmlhttml.status === 200) {  //判断状态码是否为200 200代表成功
              // console.log(Xmlhttml.responseText)
              resolve(Xmlhttml.response) //修改Promise的状态为成功 并传入数据
            } else {
              reject("失败了") //修改Promise的状态为失败
            }
          }
        }
        Xmlhttml.open('GET', url) //设置请求的方式和地址
        Xmlhttml.send()   //发送请求
      })
      return promise //返回实例
    }

    XML("http://localhost:3001/promise")
      .then((res) => {
        console.log(JSON.parse(res))
      }, (err) => {
        console.log(err)
      })

成功时返回

失败时返回

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值