Promise构造函数的方法1:Promise.resolve()和Promsie.reject()
1.promise.resolve()
它是成功状态的Promsie的一种简写方式。
参数传递:(以下重点掌握一般参数的传递):
1)一般参数和参数为空的情况下,直接返回一个resolved状态的Promise对象;
2)如果参数是Promise的实例,将不做任何修改、原封不动地返回这个实例;
3)如果参数是具有then方法的对象,Promise.resolve()会将这个对象转为Promise对象,并立即执行这个对象的then方法。
ps: 重视返回的Promise的状态对其后者执行的函数的影响
<script>
// Promise.resolve()// 1.Promise.resolve()的本质// 它是成功状态的Promsie的一种简写方式//new Promise(resolve => resolve('foo'));// 简写//Promise.resolve('foo');// 2.参数// 2.1一般参数的传递:(重点)// 调用Promise.resolve()方法传递的一般参数原封不动地向后传递,由then的第一个处理函数的形参接收Promise.resolve('foo').then(data => {console.log(data); //输出 foo})// 2.2 Promise.resolve()传递一个Promise作为参数:(了解)//当Promise.resolve()接收的是Promise对象时,直接返回这个Promise对象,什么都不做const p1 = new Promise(resolve => {setTimeout(resolve,1000,'我执行了');// 上面这句代码等同于:// setTimeout(()=>{// resolve("我执行了");// },1000);// ps:也就是说setTimeout的第三个参数是传递到它的处理函数中做参数的})Promise.resolve(p1).then(data => {console.log(data); //一秒后输出:我执行了});// 等价于:p1.then(data => {console.log(data); //一秒后输出:我执行了})console.log(Promise.resolve(p1) === p1); //输出true// 我们可以衍生出:// 当resolve函数接收的是Promise对象时,后面的then会根据传递的Promise对象的状态变化决定执行哪一个回调new Promise(resolve => resolve(p1)).then(data => {console.log(data); //一秒后输出:我执行了})</script>
2.Promise.reject()
它是失败状态的Promsie的一种简写方式:
new Promise(reject => reject('reason'));
简写:Promise.reject('reason');
参数传递:
不管什么参数,都会原封不动地向后传递,作为后续方法的参数。
扩展:
学完这两个方法以后,我们返回一个错误的Promise变得更简便:
new Promise((resolve,reject)=>{resolve(123)}).then(data => {console.log(data);//返回一个失败状态的Promise:return Promise.reject('reason');}).catch(err => console.log(err));
Promise构造函数的方法1:Promise.resolve()和Promsie.reject()相关推荐
- Promise学习-手写一个promise
学习了Promise的A+规范,以及手写一个Promise后,我对Promise学到的结果. 平常也有用到过promise来处理异步,先回顾下promise的用法 new Promise((resol ...
- cannot resolve symbol什么意思_JavaScript异步编程实现之一:Promise对象是什么?对resolve理解...
问题:Promise对象是什么? Promise对象是ES6( ECMAScript 2015 )对于异步编程提供的一种解决方案,比传统的解决方案--回调函数和事件--更合理和更强大. 传统回调: / ...
- Promise的使用方法
PS~: Promise是一个构造函数,自己身上有all.reject.resolve等几个方法,原型上有then.catch等几个方法. Promise 对象用于表示一个异步操作的最终状态(完成或失 ...
- ES6 — Promise基础用法详解(resolve、reject、then、catch,all,)
ES6 - Promise基础用法详解 Promise 是一个构造函数,它自身拥有all.reject.resolve这几个眼熟的方法, 原型上有then.catch等同样熟悉的方法. 所以,在开始一 ...
- [js] 写一个方法实现promise失败后自动重试
[js] 写一个方法实现promise失败后自动重试 <!DOCTYPE html> <html lang="en"><head><met ...
- [JavaScript] promise中.then()方法
promise中.then()方法 promise的构造函数是同步执行 promise.then中的函数是异步执行 .then()异步执行 : 当此方法执行完后再执行内部的程序是避免了没有获取到数据 ...
- es6 Promise.prototype.catch()方法
Promise.prototype.catch()方法 Promise.prototype.catch方法是.then(null, rejection)的别名,用于指定发生错误时的回调函数. getJ ...
- Uncaught (in promise)的解决方法,可能原因
Uncaught (in promise) 的解决方法,可能原因:仅仅只是一种参考原因 我是因为copy的项目直接修改的,结果一直报错 Uncaught (in promise),检查发现接口请求数据 ...
- (基础)Promise中catch()方法使用,捕获错误(拒绝)
如果Promise抛出错误,then中没有处理就会报错 报错情况 // 这样会报错,因为没有处理promise的拒绝 const promise = new Promise((resolve, rej ...
最新文章
- 使用git 上传自己代码
- TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞
- 【Web安全】从xxe到phar反序列化
- hql可以使用distinct吗_香薰精油可以当香水使用吗
- Web端即时通讯技术盘点:短轮询、Comet、Websocket、SSE
- IPC-----消息队列
- teamviewer企业版 添加计算机,teamviewer添加常用控制电脑列表的操作步骤
- python特性 property_python特性property
- java2017下载_Download Java for OS X 2017-001
- 快速上手,定制第一个WES8镜像
- linux配置usb主从_技术 | 手把手教你搭建MySQL主从架构
- [转载]ASP.NET-----Repeater数据控件的用法总结
- xstream不映射字段_XStream序列化与反序列化对象
- Padavan安装使用ZeroTier实现组建虚拟局域网的方法
- Frodo and pillows CodeForces - 760B (二分)
- 带你了解ICCV、ECCV、CVPR三大国际会议
- 经典管理学定律3 - 鳄鱼法则
- 学习树莓派的几个推荐站点
- 一条命令在 Ubuntu 中安装所有基本的媒体编解码器
- JVM内存分配和垃圾收集