前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ES6中Promise简单记一下笔记

ES6中Promise简单记一下笔记

作者头像
用户6379025
发布2022-12-26 15:54:56
1880
发布2022-12-26 15:54:56
举报
文章被收录于专栏:莫凡莫凡

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请求时发送的参数
     }) 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档