优化 JavaScript 代码:使用默认参数、提取函数和延迟回调

以下代码展示了一个异步获取用户信息的函数 getUserInfo,并演示了如何使用默认参数、提取函数和延迟回调来优化代码:

原始代码:

async getUserInfo(callBack) {
  const data = await getUserInfo()
  data.code = 500;
  if (data.code !== 200) {
    ElNotification({
      title: '温馨提示',
      message: data.msg,
      type: 'warning',
      duration: 2500
    })
  } else {
    this.setUser(data.data)
  }

  if (callBack !== undefined) {
    callBack(111)
  }
}

优化后的代码:

1. 使用默认参数来避免判断 undefined:

async getUserInfo(callBack = () => {}) {
  // ...
}

2. 将错误提示逻辑提取到函数中,避免重复代码:

function showErrorMsg(msg) {
  ElNotification({
    title: '温馨提示',
    message: msg,
    type: 'warning',
    duration: 2500
  })
}

async getUserInfo(callBack = () => {}) {
  const data = await getUserInfo()
  data.code = 500;
  if (data.code !== 200) {
    showErrorMsg(data.msg)
  } else {
    this.setUser(data.data)
  }

  callBack(111)
}

3. 将回调函数的调用放在异步操作完成后,以保证数据已经处理完毕:

async getUserInfo(callBack = () => {}) {
  const data = await getUserInfo()
  data.code = 500;
  if (data.code !== 200) {
    showErrorMsg(data.msg)
  } else {
    this.setUser(data.data)
  }

  await new Promise(resolve => setTimeout(resolve, 0))
  callBack(111)
}

解释:

  • 使用默认参数可以避免每次都判断 callBack 是否为 undefined,从而简化代码。
  • 将错误提示逻辑提取到一个单独的函数 showErrorMsg 中,可以避免代码重复,提高代码可读性。
  • 通过将回调函数的调用放在 setTimeout 中,可以确保异步操作完成后再执行回调函数,避免数据未处理完毕就执行回调函数。

总结:

通过使用默认参数、提取函数和延迟回调,可以使代码更加简洁、可读性更强,并确保数据处理完毕后再执行回调函数。

优化 JavaScript 代码:使用默认参数、提取函数和延迟回调

原文地址: https://www.cveoy.top/t/topic/no9g 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录