什么是Promise,Promise的三种状态,Promise的方法
什么是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()
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})
Promise.all()一起处理多个Promise请求,所有的请求成功才成功
Promise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。 // 三个异步都都变成fullfilled Promise.all([异步1,异步2,异步3])变成fullfilledPromise.all([异步1, 异步2, 异步3]).then((res) => {// res==[异步1结果,异步2结果,异步3结果]})
Promise.race()一起处理多个Promise请求,有一个成功就成功
// 三个异步只要有一个变成fullfilled Promise.race([异步1,异步2,异步3])就变成fullfilledPromise.race([异步1, 异步2, 异步3]).then((res) => {// res==[异步1结果,异步2结果,异步3结果]})
Promise处理错误的两种方式
第一种是通过catch方式来实现
new Promise((resolve,reject)=>{setTimeout(()=>{// 异步请求失败执行reject('失败')},3000)}).then((res)=>{//不执行console.log(res);}).catch(err=>{//失败执行console.log(err); // '失败'})
第二种是在then中传递两个回调函数,第二个回调是错误信息的回调
new Promise((resolve,reject)=>{setTimeout(()=>{// 异步请求失败执行reject('失败')},3000)}).then((res)=>{//不执行 console.log(res);},(err)=>{// 失败执行console.log(err,'err'); //'失败' 'err'})
什么是Promise,Promise的三种状态,Promise的方法相关推荐
- promise的状态值_什么是Promise,Promise的三种状态
什么是Promise对象: Js中进行异步编程的新的解决方案,用于表示一个异步操作的最终完成 (或失败), 及其结果值.. 语法上:promise是一个构造函数 简单来说,promise对象用来封装一 ...
- promise的三种状态_一.Promise中核心逻辑的实现
首先看一下Promise代码: let promise =new Promise((resolve,reject)=>{resolve('成功');//reject('失败'); }) prom ...
- 什么是Promise,Promise的三种状态
什么是Promise对象: Js中进行异步编程的新的解决方案(传统的解决方案--回调函数和事件),用于表示一个异步操作的最终完成 (或失败), 及其结果值.. 语法上:promise是一个构造函数 简 ...
- js三座大山之异步-Promise三种状态及变化
1.有resolved.rejected.pending三种状态. 2.调用resolve方法会将状态改成resolved,调用rejected方法会将状态改成rejected. 3.状态变成reso ...
- CPU被夺走的三种状态 执行时间久了 IO操作让cpu等待 被优先级高的抢占
CPU被夺走的三种状态 . cpu的三种状态之 运行态 就绪态等待被调用 阻塞态 i ...
- AntD Checkbox 的三种状态处理
对于单个 Checkbox 来说,只有两种值:选中 (checked) 或未选中 (unchecked) . 但对于 Checkbox Group 来说,却有三种值:全选 (checked) .部分选 ...
- 【SSH】——Hibernate三种状态之间的转化
Hibernate的三种状态为:transient.persistent和detached.对这三种状态的理解可以结合Session缓存,在Session缓存中的状态为persistent,另外两种不 ...
- Hibernate三种状态的区分,以及save,update,saveOrUpdate,merge等的使用
Hibernate的对象有3种状态,分别为:瞬时态(Transient). 持久态(Persistent).脱管态(Detached).处于持久态的对象也称为PO(Persistence Object ...
- 【Hibernate框架开发之五】Hibernate对象的三种状态Session常用方法
1. Hibernate对象的三种状态:(图解如下:) 如图所示,Hibernate对象有三种状态,1.Transient 2.Persistent 3.Detached; 三种状态的区别如下: 1 ...
最新文章
- filter执行先后问题_Thinkphp5框架变量覆盖导致远程代码执行
- 深入浅析zookeeper的一致性模型及其实现
- 图文结合!一文搞懂 Redis 常用知识点!
- [GRYZ2015]快排练习
- CentOS启动不显示图形界面直接进入命令行模式
- 028_Alert警告
- viewState 与session[转]
- 微软邮件服务器名称,邮箱服务器角色概述
- 非线性最小二乘通俗易懂解释
- bios uefi legacy_安装win10用uefi还是legacy?win10 uefi引导修复教程
- C/C++指针和取地址操作
- LINUX下载编译gperf
- 和秋叶一起学PPT:又快又好打造说服力幻灯片
- java可视化tiff转pdf工具
- magisk卸载内置软件_GJ2x_免root搞机工具箱V6.71 更新:增加卸载内置功能
- [歌词]《一花依世界》《君がいる世界へ》歌词假名罗马音
- 计算机基础达 打字训练视频,「跟着八戒学电脑」快速打字必须掌握的基本功:指法练习...
- ThinkPad T43续命记
- CorelDRAW2022订阅版本最新更新内容
- 企业微信小程序_获取准确定位的方法及解决定位不准确的问题