Pomise的知识点

1.Promise的概述

Promise 是异步编程的一种解决方案、比传统的解决方案-回调函数和时间 更合理且更加强

Promise 对象代表一个异步操作,有3状态

2.Promise的状态

一个promise三种状态:

进行中(pending)

已完成(fulfilled)

已拒绝(rejected)
一个promise的状态只可能从“进行中”转到“已完成”态或者“已拒绝”态,顺序是不能逆向转换,同时“已完成”和“已拒绝” 不能相互转换
promise必须实现then方法而且then必须返回一个promise,同一个promise的then可以调用多次,并且回调的执行顺序跟它们被定义时的顺序要保持一致
then方法可以接受两个参数,第一个参数是成功时的回调,在promise由“进行中”转换到“已完成”时调用,另一个是失败时的回调,在promise由“进行中”转换到“已拒绝”时调用。同时,then可以接受另一个promise传入,也接受一个“类then”的对象或方法,即thenable对象。

3.Promise对象的创建方式
    1. new Promise((resolve, reject) => {} ) : promise 的状态由回调函数来进行切换
    2. Promise.resolve(data) : 快速构建一个 fulfilled 状态的 promise 
    3. Promise.reject(data) : 快速构建一个 rejected 状态的 promise

4.Promise#then 方法的特点
Promise 执行失败时的回调,两个函数只会有一个被调用。
then方法的特点
在 事件队列的当前运行完成之前,回调函数永远不会被调用。

then 支持两个回调函数
第一个回调函数,代表 Promise 状态为 fulfilled 执行的回调
第二个回调函数, 代表 promise 状态为 rejected 执行的回调

通过 .then形式添加的回调函数,不论什么时候,都会被调用。

通过多次调用.then,可以添加多个回调函数,它们会按照插入顺序并且独立运行。
then 方法将返回一个 resolved 或 rejected 状态的 Promise 对象用于链式调用,且 Promise 对象的值就是这个返回值。

5.Promise 链式调用

 then :
1. 处理 承诺 已完成的 业务
 2. 更改 返回的 新的 promise 对象的状态

  then 方法会返回一个 新的 promise 对象
1. then 方法的回调函数如果能被执行, 新的 promise 对象 状态由 回调函数 确定
              如果回调函数产生异常, 则返回 rejected 状态的 promise
           如果回调函数 没有 return ,则 返回 fulfilled 状态,并将 undefined 作为参数传给新的promise
              如果回调函数 return 普通数据、则将 普通数据 作为 resolve 的 参数传给新的 promise
             如果回调函数 return 一个 promise 对象,则then 返回的新的promise 对象状态和 return 的promise对象状态完全一致
              then 方法的回调函数如果不能执行,新的 promise 对象 和 调用 then 方法的 promise状态 完全一致

6.Promise.resolve 传入的参数类型

 Promise.resolve(arg) 快速的创建一个状态为 fulfilled的 promise
arg 参数的类型满足以下条件
arg是一个普通数据,会构建一个 fulfilled状态的 promise,并将 arg 的值 作为 resolve的参数

arg 是 undefined, 会将 undefined 作为 resolve的参数,并返回 fulfilled状态的 promise
 arg 是一个 thenable(某个对象中有 then 方法) 对象, 那么 会直接执行 then 方法, 返回的promise对象状态由 then函数来确定
  arg 是一个promise 对象, 那么会返回一个 和 arg promise对象状态完全一致的 promise

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值