2021-06-02

Promise的概述

Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上 说,
Promise 是一个对象,从它可以获取异步操作的消息。
Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。

在这里插入图片描述
1.如果p是一个pending状态的promise, 那么 res也是一个pending状态的promise,
2.如果p是一个resolve状态的promise, res没有返回值, 则res是一个值为null, resolve状态的Promise

Promise对象的创建方式

构造函数用一个函数作为参数,该函数有两个参数,两个参数均是回调函数,由JS引擎提供,你不用自己部署了。第一个参数resolve,当异步操作成功时会调用,它有一个参数用于传递异步操作成功的结果。第二个参数reject,当异步操作失败时会调用,它有一个参数用于传递异步操作失败的信息。例如:
在这里插入图片描述

Promise#then 方法的特点

then方法是在promise构造函数的prototype属性上,所以说,只要是promise创建的实力,都可以访问到then方法

Promise 链式调用

一,可进行链式调用,且每次 then 返回了新的 Promise(2次打印结果不一致,如果是同一个实例,打印结果应该一致。
二,只输出第一次 resolve 的内容,reject 的内容没有输出,即 Promise 是有状态且状态只可以由pending -> fulfilled或 pending-> rejected,是不可逆的。
三,then 中返回了新的 Promise,但是then中注册的回调仍然是属于上一个 Promise 的。

Promise.resolve 传入的参数类型

1.参数是promise实例,直接返回这个实例本身,不做处理。

2.参数是一个thenable对象,即其中实现了then方法。则会将此对象生成为一个promise,状态为resolved,并调用其then方法。

3.参数是一个原始类型的数据,则直接返回一个状态为resolved的promise,并将改参数传入resolved函数处理。

4.参数为空,则直接返回一个状态为resolved的promise

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值