async await 配合promise封装异步方法

废话不多说直接上代码:

function test(mark){
  return new Promise((resolve, reject)=>{
    if(mark){
      setTimeout(()=>{
         let data={
           code:0,
           id:666,
           title:'测试' 
         }   
         resolve(data)
      },800)
    }else{
      reject({
        code:-1,
        msg:'参数异常'
      })
    }
  })
}

(async ()=>{
  try{
    console.log(1)
    let data=await test(true)
    console.log(2)
    console.log(data)   
    //执行结果
    //1
    //2
    //{code:0,id:666, title:'测试' }
 
    let data2=await test(false)
  }catch(e){
    console.log(e)//{code:-1,msg:'参数异常'}
  }
  
})()

看了代码发现我加了try catch,为什么呢,因为test函数return 的不一定是 json数据 当不满足条件执行执行后会reject是promise本身,所以会导致后面let data2=await test(false) 报错。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容