什么是promise

Promise是解决异步编程的一种方案,用同步的写法来进行异步请求,Promise是一个构造函数,用new来创建Promise实例对象,回调函数作为它的参数,该回调函数有两个参数,分别是resolve和reject,resolve异步请求成功执行,reject异步请求失败执行

Promise的三种状态

对象的状态不受外界的影响,状态分别是pending(进行中)、fullfilled(已成功)和rejected(已失败),状态一旦改变,就不会再变,状态改变只有两种可能:从pending到fullfilled或者是从pending到rejected

Promise的方法(4种)

Promise有then和catch方法Promise.all()和Promise.race()

  1. then方法请求成功的回调

    then方法是构造函数原型上的方法,每次执行then后,返回一个新的Promise实例,那么就代表可以不断的then,形成链式编程

        new Promise((resolve,reject)=>{setTimeout(()=>{//异步请求成功执行   resolve(123)},3000)}).then(res=>{console.log(res);  //123return 456}).then(res1=>{console.log(res1); //456})
  2. Promise.all()一起处理多个Promise请求,所有的请求成功才成功

    Promise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。
    ​// 三个异步都都变成fullfilled   Promise.all([异步1,异步2,异步3])变成fullfilledPromise.all([异步1, 异步2, 异步3]).then((res) => {// res==[异步1结果,异步2结果,异步3结果]})
  3. Promise.race()一起处理多个Promise请求,有一个成功就成功

    // 三个异步只要有一个变成fullfilled   Promise.race([异步1,异步2,异步3])就变成fullfilledPromise.race([异步1, 异步2, 异步3]).then((res) => {// res==[异步1结果,异步2结果,异步3结果]})

Promise处理错误的两种方式

  1. 第一种是通过catch方式来实现

      new Promise((resolve,reject)=>{setTimeout(()=>{// 异步请求失败执行reject('失败')},3000)}).then((res)=>{//不执行console.log(res);}).catch(err=>{//失败执行console.log(err);  // '失败'})
  2. 第二种是在then中传递两个回调函数,第二个回调是错误信息的回调

       new Promise((resolve,reject)=>{setTimeout(()=>{// 异步请求失败执行reject('失败')},3000)}).then((res)=>{//不执行   console.log(res);},(err)=>{// 失败执行console.log(err,'err'); //'失败' 'err'})

什么是Promise,Promise的三种状态,Promise的方法相关推荐

  1. promise的状态值_什么是Promise,Promise的三种状态

    什么是Promise对象: Js中进行异步编程的新的解决方案,用于表示一个异步操作的最终完成 (或失败), 及其结果值.. 语法上:promise是一个构造函数 简单来说,promise对象用来封装一 ...

  2. promise的三种状态_一.Promise中核心逻辑的实现

    首先看一下Promise代码: let promise =new Promise((resolve,reject)=>{resolve('成功');//reject('失败'); }) prom ...

  3. 什么是Promise,Promise的三种状态

    什么是Promise对象: Js中进行异步编程的新的解决方案(传统的解决方案--回调函数和事件),用于表示一个异步操作的最终完成 (或失败), 及其结果值.. 语法上:promise是一个构造函数 简 ...

  4. js三座大山之异步-Promise三种状态及变化

    1.有resolved.rejected.pending三种状态. 2.调用resolve方法会将状态改成resolved,调用rejected方法会将状态改成rejected. 3.状态变成reso ...

  5. CPU被夺走的三种状态 执行时间久了 IO操作让cpu等待 被优先级高的抢占

    CPU被夺走的三种状态   .                           cpu的三种状态之              运行态      就绪态等待被调用             阻塞态 i ...

  6. AntD Checkbox 的三种状态处理

    对于单个 Checkbox 来说,只有两种值:选中 (checked) 或未选中 (unchecked) . 但对于 Checkbox Group 来说,却有三种值:全选 (checked) .部分选 ...

  7. 【SSH】——Hibernate三种状态之间的转化

    Hibernate的三种状态为:transient.persistent和detached.对这三种状态的理解可以结合Session缓存,在Session缓存中的状态为persistent,另外两种不 ...

  8. Hibernate三种状态的区分,以及save,update,saveOrUpdate,merge等的使用

    Hibernate的对象有3种状态,分别为:瞬时态(Transient). 持久态(Persistent).脱管态(Detached).处于持久态的对象也称为PO(Persistence Object ...

  9. 【Hibernate框架开发之五】Hibernate对象的三种状态Session常用方法

    1. Hibernate对象的三种状态:(图解如下:) 如图所示,Hibernate对象有三种状态,1.Transient  2.Persistent 3.Detached; 三种状态的区别如下: 1 ...

最新文章

  1. filter执行先后问题_Thinkphp5框架变量覆盖导致远程代码执行
  2. 深入浅析zookeeper的一致性模型及其实现
  3. 图文结合!一文搞懂 Redis 常用知识点!
  4. [GRYZ2015]快排练习
  5. CentOS启动不显示图形界面直接进入命令行模式
  6. 028_Alert警告
  7. viewState 与session[转]
  8. 微软邮件服务器名称,邮箱服务器角色概述
  9. 非线性最小二乘通俗易懂解释
  10. bios uefi legacy_安装win10用uefi还是legacy?win10 uefi引导修复教程
  11. C/C++指针和取地址操作
  12. LINUX下载编译gperf
  13. 和秋叶一起学PPT:又快又好打造说服力幻灯片
  14. java可视化tiff转pdf工具
  15. magisk卸载内置软件_GJ2x_免root搞机工具箱V6.71 更新:增加卸载内置功能
  16. [歌词]《一花依世界》《君がいる世界へ》歌词假名罗马音
  17. 计算机基础达 打字训练视频,「跟着八戒学电脑」快速打字必须掌握的基本功:指法练习...
  18. ThinkPad T43续命记
  19. CorelDRAW2022订阅版本最新更新内容
  20. 企业微信小程序_获取准确定位的方法及解决定位不准确的问题

热门文章

  1. 余世维成功经理人讲座
  2. 余世维 - 老板首先要诚实
  3. 大计基编程题(第十二周)
  4. 使用html,css实现简单的导航栏
  5. 自动驾驶落地,究竟被什么「绑」住了脚?
  6. 使用CNN预测基因可及性
  7. 谈谈C++中的swap函数
  8. const与指针用法
  9. DPDK:UDP 协议栈的实现
  10. js关于时间(date)的比较