es6中async函数和await表达式

es6中async函数和await表达式

一、async函数:返回值是promise对象

 // async函数
    async function fn(){

      //async返回值为promise对象,即使用return返回出来不是promise对象,也会返回promise对象
      //只要返回的结果不是一个promise类型对象,则函数返回值就是一个成功的promise
      // return '结果'

      //抛出错误,则返回一个失败的promise对象
      // throw nww Error('出错啦')

      //结果返回的是一个promise对象
      return new Promise((resolve,reject)=>{
        resolve('成功的数据')
      })
   }
      const result = fn()
      console.log(result)

二、await表达式

  • await 必须在async函数中使用
  • await返回的值是promise成功的值
  • await的promise返回失败,就会抛出异常,需要使用try…catch处理
    const p=new Promise((resolve,reject)=>{
        resolve('成功的数据')
        //reject('失败啦')
      })
    async function fn(){
    try{
     let result=await p
     console.log(result)
    }
    catch(e){
    console.log(e)
    }
    
     }
     //调用方法
     fn()

es6中async函数和await表达式_第1张图片

你可能感兴趣的:(es6,js,javascript)