ES6:一、Promise语法

Promise语法

    new Promise((resolve,reject)  =>  {...})

Promise对象表示一个异步操作的最终状态(完成或失败)。

为什么需要Promise

Promise是为了解决异步函数多重嵌套的问题(回调地狱)。

什么是回调地狱

参数


一个回调函数,其中包含了两个参数,resolve,reject。
当回调函数内部正常执行之后,回调用resolve函数,不过,一旦发生error,则返回值会被忽略,执行reject函数。

描述

一个Promise对象有下面几种状态:

  • pending:初始化状态
  • fulfilled:回调执行成功
  • rejected:回调执行中出现异常

方法

    Promise.resolve(val)

Promise正常执行完成后调用,返回一个状态值val,决定Promise对象。

  • 返回一个Promise对象,直接返回该对象
  • 返回带有then方法的对象,返回Promise对象最终状态由then执行
  • 返回的值val为空,则返回一个状态为fulfilled的Promise对象
  • 一般情况,当你不知道一个值是否为Promise对象,使用Promise.resolve(val)进行包装
Promise.reject(val)

返回一个状态为resolve的Promise对象

Promise.all([])

返回一个状态为失败的Promise对象,传入一个可以迭代的对象,当iterable全部为fulfilled时,返回一个resolve状态

  • 传入一个空的可迭代对象,则返回resolve状态的Promise对象
  • 传入的参数不包含任何Promise,则返回一个resolve状态的Promise对象
  • 只要有一个可迭代对象返回reject,则返回状态为reject的Promise对象
  • 其他情况下,返回一个pending(处理中)的Promise对象
Promise.race(iterable)

返回一个Promise对象,一旦迭代器对象中的某个Promise返回resolve或reject,则返回的Promise对象会立刻改为同一个状态。

Promise.catch(reject)

处理返回状态为reject的Promise对象

Promise.finally(resolve|reject)

无论返回的Promise对象状态为resolve或reject,都将会执行finally函数

参考链接:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值