优化 JavaScript 代码:使用默认参数、提取函数和延迟回调
优化 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中,可以确保异步操作完成后再执行回调函数,避免数据未处理完毕就执行回调函数。
总结:
通过使用默认参数、提取函数和延迟回调,可以使代码更加简洁、可读性更强,并确保数据处理完毕后再执行回调函数。
原文地址: https://www.cveoy.top/t/topic/no9g 著作权归作者所有。请勿转载和采集!