2021-06-09 Promise

Promise

描述

1.Promise的三种状态

  • 待定(pending): 初始状态,既没有被兑现,也没有被拒绝。
  • 已兑现(fulfilled): 意味着操作成功完成。
  • 已拒绝(rejected): 意味着操作失败。

2.构造函数和Promise原型

  • Promise():创建一个新的 Promise 对象。该构造函数主要用于包装还没有添加 promise 支持的函数。
  • Promise 原型属性:Promise.prototype.constructor。返回被创建的实例函数. 默认为 Promise 函数。

基本使用和创建

1.解决的问题:

  • 主要是为了解决异步函数调用时的回调地狱问题(连续执行两个或多个异步操作),采用的是链式调用。其中,then() 函数会返回一个和原来不同的新的 Promise,必须要有返回值,否则callback将无法获取上一个Promise的值。

2.封装setTimeout函数

const wait = ms => new Promise(resolve => setTimeout(resolve, ms));
wait(10000).then(() => saySomething("10 seconds")).catch(failureCallback);

3.创建Promise:

  • Promise 对象是由关键字 new 及其构造函数来创建的。该构造函数会把一个叫做“处理器函数”(executor function)的函数作为它的参数。这个“处理器函数”接受两个函数——resolve 和 reject ——作为其参数。
    当异步任务顺利完成且返回结果值时,会调用 resolve 函数;而当异步任务失败且返回失败原因(通常是一个错误对象)时,会调用reject 函数。

Promise.all() 和 Promise.race() 方法

Promise.all() 和 Promise.race() 是并行运行异步操作的两个组合式工具。

  • Promise.all(iterable):必须所有的都成功
    这个方法返回一个新的promise对象,该promise对象在iterable参数对象里所有的promise对象都成功的时候才会触发成功,一旦有任何一个iterable里面的promise对象失败则立即触发该promise对象的失败。
    这个新的promise对象在触发成功状态以后,会把一个包含iterable里所有promise返回值的数组作为成功回调的返回值,顺序跟iterable的顺序保持一致;如果这个新的promise对象触发了失败状态,它会把iterable里第一个触发失败的promise对象的错误信息作为它的失败错误信息。
    Promise.all方法常被用于处理多个promise对象的状态集合。
  • Promise.race(iterable):返回更快的结果
    当iterable参数里的任意一个子promise被成功或失败后,父promise马上也会用子promise的成功返回值或失败详情作为参数调用父promise绑定的相应句柄,并返回该promise对象。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值