async function confirm() { isShow.value = false; // params.value.pageSize = 7 let i = menu.value.find((v) => v.isActive === true).id - 1; if (i === 0) { params.value.houseType = tagsList.value.find( (v) => v.isActive === true )?.value; } else if (i === 1) { params.value.orientation = tagsList.value.find( (v) => v.isActive === true )?.value; } else if (i === 2) { params.value.rentStr = tagsList.value.find( (v) => v.isActive === true )?.value; } else if (i === 3) { let arr = []; tagsList.value?.forEach((v) => { if (v.isActive === true) { arr.push(v.value * 1); } }); if (arr.length > 0) { params.value.houseLabels = arr.join(","); } } search(); }优化
时间: 2023-08-12 11:04:38 浏览: 20
可以将这段代码优化为:
```
isShow.value = false;
// params.value.pageSize = 7
const i = menu.value.findIndex(v => v.isActive) - 1;
if (i === 0) {
params.value.houseType = tagsList.value.find(v => v.isActive)?.value;
} else if (i === 1) {
params.value.orientation = tagsList.value.find(v => v.isActive)?.value;
} else if (i === 2) {
params.value.rentStr = tagsList.value.find(v => v.isActive)?.value;
} else if (i === 3) {
const arr = tagsList.value?.filter(v => v.isActive)?.map(v => v.value * 1);
if (arr?.length) {
params.value.houseLabels = arr.join(",");
}
}
search();
```
这样可以将代码变得更加简洁和易读,同时也可以避免使用可选链操作符时的一些潜在问题。
相关问题
async function changeNumber(target) { let param = { url: '/cart/number', argument: { id: localStorage.getItem('userId'), goodsId: target.parentElement.parentElement.dataset.goodsid, // number: --target.nextElementSibling.value } } if (target.className == 'deleteGoods') { param.argument.number = --target.nextElementSibling.value if (param.argument.number == 0) { target.nextElementSibling.value = 1 target.disabled = true return } } if (target.className == 'addGoods') { param.argument.number = target.previousElementSibling.value target.previousElementSibling.previousElementSibling.disabled = false } let res = await ajax_post(param) if (res.code == 1) { this.renderCarList() } } 改变为同步函数怎么改变
可以直接将async关键字去掉,改为普通的函数即可。如下所示:
function changeNumber(target) {
let param = {
url: '/cart/number',
argument: {
id: localStorage.getItem('userId'),
goodsId: target.parentElement.parentElement.dataset.goodsid,
// number: --target.nextElementSibling.value
}
}
if (target.className == 'deleteGoods') {
param.argument.number = --target.nextElementSibling.value
if (param.argument.number == 0) {
target.nextElementSibling.value = 1
target.disabled = true
return
}
}
if (target.className == 'addGoods') {
param.argument.number = target.previousElementSibling.value
target.previousElementSibling.previousElementSibling.disabled = false
}
let res = ajax_post(param)
if (res.code == 1) {
this.renderCarList()
}
}
async changeNumber(target) { let param = { url: '/cart/number', argument: { id: localStorage.getItem('userId'), goodsId: target.parentElement.parentElement.dataset.goodsid, // number: --target.nex tElementSibling.value } } if (target.className == 'deleteGoods') { param.argument.number = --target.nextElementSibling.value if (param.argument.number == 0) { target.nextElementSibling.value = 1 target.disabled = true return } } if (target.className == 'addGoods') { param.argument.number = ++target.previousElementSibling.value target.previousElementSibling.previousElementSibling.disabled = false } let res = await ajax_post(param) if (res.code == 1) { this.renderCarList() } } 这段代码用同步函数怎么学
您好,首先需要将 async 改为 function,即将该函数改为同步函数,同时需要在异步请求部分加上 await 关键字以等待请求完成。
修改后的代码如下:
function changeNumber(target) {
let param = {
url: '/cart/number',
argument: {
id: localStorage.getItem('userId'),
goodsId: target.parentElement.parentElement.dataset.goodsid,
// number: --target.nextElementSibling.value
}
}
if (target.className == 'deleteGoods') {
param.argument.number = --target.nextElementSibling.value
if (param.argument.number == 0) {
target.nextElementSibling.value = 1
target.disabled = true
return
}
}
if (target.className == 'addGoods') {
param.argument.number = target.previousElementSibling.value
target.previousElementSibling.previousElementSibling.disabled = false
}
let res = await ajax_post(param)
if (res.code == 1) {
this.renderCarList()
}
}
相关推荐















