ES6中Promise简单记一下笔记

2022-12-26 15:54:56 浏览数 (1)

1.Promise的含义 Promise 是异步编程的一种解决方案,和传统的回调函数引发的回调地狱问题,在Promise中得到了很好的解决 Promise可以理解为一个容器,里面保存了未来才会结束的事件,(重要)一般是获取发送AJAX通信,获取数据操作事件比较长的异步操作 2.Promise的特点 对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。这也是Promise这个名字的由来,它的英语意思就是“承诺”,表示其他手段无法改变。 一旦状态改变,就不会再变,任何时候都可以得到这个结果。Promise对象的状态改变,只有两种可能:从pending变为fulfilled和从pending变为rejected。只要这两种情况发生,状态就凝固了,不会再变了,会一直保持这个结果,这时就称为 resolved(已定型)。 3.Promise的缺点 首先,无法取消Promise,一旦新建它就会立即执行,无法中途取消 其次,如果不设置回调函数,Promise内部抛出的错误,不会反应到外部 当处于pending状态时,无法得知目前进展到哪一个阶段(刚刚开始还是即将完成) Promise的语法 Promise对象是一个构造函数,用来生成Promise实例

代码语言:javascript复制
    let promise=new Promise(function(resolve,reject){
       //some  code    这里写的代码会立即执行
       // 发送一个ajax请求
       let xhr=new XHLHttpRequest()  //新建xml对象
       xhr.open("methond","url")     //发送请求
       xhr.onreadystatechange=function(){   // 状态发生改变时
         if(xhr.readyState===4){
         if(xhr.status===200){
          let response=xhr.responseText  // 拿到响应文本
            resolve(response)
         }else{
          reject("获取数据错误")
         }
        }
       }
       xhr.send()//发送数据给服务端,post请求时发送的参数
     }) 

0 人点赞