ES6 Promise对象,与 async 函数。

ES6 Promise对象、

Promise概述

  • Promise是异步编程的一种解决方案。
  • 从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。
  • 封装了异步操作和成功,失败的回调。
  • 承诺,保证。如果执行的状态发生了改变,成功就是成功,失败就是失败。

Promise的三种状态:

  • pending 执行中
  • resolved 解决(成功)
  • rejected 拒绝(失败)
  • 除了异步操作的结果,任何其他操作都无法改变这个状态。
  • Promise 对象只有:从 pending 变为 fulfilled 和从 pending 变为 rejected 的状态改变。只要处于 fulfilled 和 rejected ,状态就不会再变了即 resolved(已定型)。

为什么用Promise?解决了什么问题?

  • 解决了回调地域问题(Callback Hell)
    传统的多个异步操作写法:
  • 1.代码可读性差
  • 2.代码流程很难控制
    在这里插入图片描述
    状态的缺点:
  • 无法取消 Promise ,一旦新建它就会立即执行,无法中途取消。
  • 如果不设置回调函数,Promise 内部抛出的错误,不会反应到外部。
  • 当处于 pending 状态时,无法得知目前进展到哪一个阶段(刚刚开始还是即将完成)。

如何使用Promise?
在这里插入图片描述

ES6 async 函数

async的概述:

  • async 是 ES7 才有的与异步操作有关的关键字,和 Promise , Generator 有很大关联的。

async语法:在这里插入图片描述

  1. name: 函数名称。
  2. param: 要传递给函数的参数的名称。
  3. statements: 函数体语句。

返回值:

  • async 函数返回一个 Promise 对象,可以使用 then 方法添加回调函数。
    在这里插入图片描述

await 概括:

  • await 关键字仅在 async function 中有效,如果在 async function 函数体外使用 await ,就会得到一个语法错误。
  • await 操作符用于等待一个 Promise 对象, 它只能在异步函数 async function 内部使用。

await 语法:
在这里插入图片描述

  • expression:是 一个 Promise 对象或者任何要等待的值。

返回值:

  • 返回 Promise 对象的处理结果。如果等待的不是 Promise 对象,就返回该值本身。
  • 如果一个 Promise 被传递给一个 await 操作符,await 将等待 Promise 正常处理完成并返回其处理结果。
  • 正常情况下,await 命令后面是一个 Promise 对象,它可以跟其它值,如字符串,布尔值,数值以及普通函数。

await针对所跟不同表达式的处理方式:

  1. Promise 对象:await 会暂停执行,等待 Promise 对象 resolve,然后恢复 async 函数的执行并返回解析值。
  2. 非 Promise 对象:直接返回对应的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值