使用async await 处理reject

使用promise时我们可以自己指定resolve 和 reject的返回值

        // 定义一个promise函數
        let p1 = (arg) => {
        return new Promise((resolve, reject) => {
                    setTimeout(() => {
                        if (arg) {
                            resolve({
                                sus: true,
                                data: 1
                            })
                        } else {
                            reject({
                                sus: false,
                                msg: '缺少参数'
                            })
                        }
                    })
            
                })
         }

那使用async await时如何处理reject呢,代码如下:

// 错误调用{msg:'这是await返回的错误信息'} 
  let fn2 = async function() {
      let res = await p1().catch((e) => {
        console.log(e,666) // 这里返回上面的{sus: false,msg: '缺少参数'}
        return {msg:'这是await返回的错误信息'} // 可以重定义错误返回
    })
    return res
  }
fn2()

提醒:小伙伴们在调接口或者处理其他异步代码的时候记得处理异常状态哦

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):