async...await...全局異常捕獲


async...await...全局異常捕獲

全局方法

/**
 * 全局的異常捕獲
 * @param {Function} func 傳入的方法
 * @param  {...any} args 方法調用的參數
 * @returns {Array} [err, res]
 */
export async function asyncFunc(func, ...args) {
  try {
    const res = await func(...args)
    return [null, res]
  } catch (e) {
    return [e, null]
  }
}

組件使用

import asyncFunc from 'xxxx/xxx/xxx'
import { api, api1 } from 'api/index.js'

async function func() {
  const [err, res] = await asyncFunc(api)

  if (err) {
    // 錯誤處理
  }
  // 正常處理
  // 帶參數接口的處理
  const [api1Err, api1Res] = await asyncFunc(api1, {id: xxx}, list: [1,2,3,4,5], isTrue: true)
  if (api1Err) {
    // 錯誤處理
  }
  //正常處理
}

錯誤可以在asyncFunc進行定義全局捕捉,畢竟async...await...的應用場景大多是連鎖請求


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM