美文网首页
ES7-async函数

ES7-async函数

作者: 清风昙 | 来源:发表于2022-03-07 00:26 被阅读0次

anync函数是在ES2017标准中引入的,使用async关键字声明的函数,是AsyncFunction构造函数的实例。在async函数内部可以使用await关键字,表示紧跟在后面的表达式需要等待结果。async和await关键字可以更简洁的写出基于Promise的异步行为。

  • 基本用法
    async函数会返回一个Promise对象,如果一个async函数的返回值不是Promise,那么会被隐式地包装到一个Promise中。如:
asnyc function asyncFunc() {
  return 'hello'
}
// 等价于
function asyncFunc() {
  return Promise.resolve('hello')
}
console.log(asyncFunc())  // Promise{'hello'}
asyncFunc().then(res => {
  console.log(res)  // hello
})

async函数内部return语句返回的值,会成为then()方法回调函数的参数
async函数中可以有await表达式,async函数执行时,如果遇到await,会先暂停执行,等到触发的异步操作完成后,再恢复async函数的执行并返回解析值。如:

function asyncFunc() {
  return new Promise(resolve => {
    console.log('延时任务')
    resolve()
  }, 1000)
}
async function helloAsync() {
  await asyncFunc()
  console.log('hello')
}
helloAsync()
// 延时任务
// hello
  • 错误处理
    如果async函数内部抛出错误,会导致返回的Promise对象变为reject状态,抛出的错误对象会被catch()方法回调函数接收到。如:
    async function asyncFunc() {
    await new Promise((resolve, reject) => {
    throw new Error('抛出错误')
    })
    asyncFunc().then(res => {
    console.log(res)
    }).catch( err => {
    console.log(err) // 抛出错误
    })
    }

相关文章

  • es7-async函数

    async函数是Generator函数的语法糖。async 表示函数里面有异步操作;await 表示紧跟后面的...

  • es7-async函数

    含义 async 是es7里提供的函数,使得异步操作更加方便,它是Generator函数的语法糖;Generato...

  • ES7-async函数

    anync函数是在ES2017标准中引入的,使用async关键字声明的函数,是AsyncFunction构造函数的...

  • Excel(三)

    AND函数 OR函数 NOT函数 IF函数 频率分析函数FREQUENCY

  • if、else if、for、while、repeat函数

    ①if函数 ②else if函数 ③for函数 ④while函数 ⑤repeat函数

  • strsplit、mapply、paste、match函数

    strsplit函数 mapply函数 strsplit函数 mapply函数 paste函数 match函数 第...

  • Oracle中常用函数(SQL)

    Oracle函授有以下几个分类:数字函数、字符函数、日期函数、转换函数、集合函数、分析函数 数字函数: 字符函数:...

  • MySQL函数

    字符函数 数字运算函数 比较运算符和函数 日期时间函数 信息函数 聚合函数 加密函数 流程函数

  • BI-SQL丨AND & OR & IN

    AND函数 & OR函数 & IN函数 AND函数、OR函数和IN函数都可以理解是WHERE函数的补充,当然也可以...

  • Python之函数

    课程大纲 函数定义 函数的参数 函数的返回值 高阶函数 函数作用域 递归函数 匿名函数 内置函数 函数式编程 将函...

网友评论

      本文标题:ES7-async函数

      本文链接:https://www.haomeiwen.com/subject/yktorrtx.html