使用await-to.js 捕获 async/await 报错信息

  • Promise封装请求

    ```js

    // 封装请求函数

    const request = (url, params) => {

       return new Promise((resolve, reject) => {

        // ...do something

      })

    }

    // 使用时

    const handleLogin = () => {

      request( '/basic/login',{usename: 'sunshine',password: '123456'}).then(res => {

        // success do something

      }).catch(err=>{

         // fail do something

      })

    }

  ```

  • await-to-js 捕获 async await 报错信息

  ```js

    /**
     * @param { Promise } 传进去的请求函数
     * @param { Object= } errorExt - 拓展错误对象
     * @return { Promise } 返回一个Promise
     */
    export function to(
        promise,
        errorExt
      ) {
           return promise
          .then(data => [null, data])
          .catch(err => {
            if (errorExt) {
              const parsedError = Object.assign({}, err, errorExt)
              return [parsedError, undefined]
            }
            return [err, undefined]
          })
      }
      export default to

  ```

 

  • await-to-js 配合 async await 使用

  ```js

    const handleLogin = async () => {
      const [resErr, res] = await to(request('/basic/login', {
        usename: 'sunshine',
        password: '123456'
      }))
      if (resErr) {
        // fail do somthing
        return
      }
      const [userErr, info] = await to(request('/basic/getuserinfo', {
        id: res.id
      }))
      if (userErr) {
        // fail do somthing
        return
      }
      this.userInfo = info
    }

  ```


 

posted @   G_Lose  阅读(297)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示