异步函数之 -- async await

本文详细介绍了ES8中的async/await,它们使得异步代码更加简洁。async关键字用于定义异步函数,返回Promise对象。await关键字只能在async函数中使用,它会暂停函数执行,等待Promise解决后恢复,并返回Promise的结果。文章还通过实例解释了await的暂停和恢复执行机制,并提供了练习题帮助读者加深理解。同时提到了await修饰失败Promise的情况,当await后的Promise失败,后续代码将不再执行。
摘要由CSDN通过智能技术生成

目录

概念

async

await

await 的暂停和恢复执行机制

练习题

await 修饰一个失败的promise


概念

异步函数就是通过 async 修饰的函数, async await 是ES8规范新增的, 这两个关键字的作用就是让我们的异步代码更加简洁, 接下来就来玩一玩.

async

async 关键字用来修饰异步函数, 放在异步函数前即可, 通过async修饰的函数他的返回值必定是一个promise对象, 如果返回值不是promise对象(包括没有返回值)内部都会经过Promise,reslove()将结果包装成promise对象返回,

    async function sync1() {
      return 1
    }
    async function sync2() {
    }
    async function sync3() {
       return Promise.reject(new Error('返回了错误状态的promise'));
    }
    const res1 = sync1()
    const res2 = sync2()
    const res3 = sync3().catch(err => console.log(err))
    console.log(res1, res2, res3);

await

await 关键字只能使用在 anync 修饰的异步函数中,await之后一般会跟一个实现thenable接口的对象 常规的数值和字符串也可以, await会阻塞函数内后面的代码的执行直到await修饰的promise成功, await之后的代码才会恢复执行

await 跟一个实现了then方法的对象 

    const callback = (val) => {
      return val
    }
    con
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值