var createOrder = function () { let tj = 1 storage.setItem('tj', tj) console.log(payType) var orderJson = { payType: storage.getItem('payType'), price: storage.getItem('price'), payPrice: storage.getItem('price'), mobile: storage.getItem("ureId"), wxInside: isWeiXin ? 1 : 0, orderType: 0, caId: storage.getItem('caId'), caLinkId: storage.getItem('id'), aoId: storage.getItem('a_oId'), } $.ajax({ type: 'POST', dataType: 'json', data: JSON.stringify(orderJson), url: requestUrl + '/api/aliPayConfig/aliPay', contentType: "application/json; charset=utf-8", success: function (res) { console.log(res, '下单返回数据'); var orderId = res.data.orderId storage.setItem('orderId', orderId) if (res.data.wxDomain) { window.location.href = res.data.wxDomain + '?mwebUrl=' + encodeURIComponent(res.data.mwebUrl) + '&mwebForm' + encodeURIComponent(res.data.mwebForm) return false } // 微信内外 if (res.data.mwebUrl) { window.location.href = res.data.mwebUrl return false } // 支付宝 if (res.data.mwebForm) { $('body').append(res.data.mwebForm) return false } }, error: function () { toast('接口请求失败,请重试') } }) } 优化这段代码
时间: 2024-02-14 20:16:28 浏览: 133
storage.doc
这段代码主要是用于创建订单和进行支付操作。以下是我对这段代码的优化建议:
1. 将变量tj的赋值和存储操作合并,可以直接使用storage.setItem('tj', 1)来替代。
2. 将orderJson中的各个字段的获取和存储操作分离,可以先获取各个参数的值并存储到变量中,然后再将这些变量传递给orderJson,这样可以提高代码的可读性和可维护性。
3. 将$.ajax方法中的success和error回调函数改为Promise方式,这样可以更方便地进行错误处理和异步操作。
根据以上建议,优化后的代码如下:
```javascript
var createOrder = function () {
storage.setItem('tj', 1);
console.log(payType);
var payType = storage.getItem('payType');
var price = storage.getItem('price');
var caId = storage.getItem('caId');
var id = storage.getItem('id');
var a_oId = storage.getItem('a_oId');
var mobile = storage.getItem('ureId');
var wxInside = isWeiXin ? 1 : 0;
var orderType = 0;
var orderJson = {
payType: payType,
price: price,
payPrice: price,
mobile: mobile,
wxInside: wxInside,
orderType: orderType,
caId: caId,
caLinkId: id,
aoId: a_oId,
};
return new Promise(function(resolve, reject) {
$.ajax({
type: 'POST',
dataType: 'json',
data: JSON.stringify(orderJson),
url: requestUrl + '/api/aliPayConfig/aliPay',
contentType: "application/json; charset=utf-8"
}).done(function(res) {
console.log(res, '下单返回数据');
var orderId = res.data.orderId;
storage.setItem('orderId', orderId);
if (res.data.wxDomain) {
window.location.href = res.data.wxDomain + '?mwebUrl=' + encodeURIComponent(res.data.mwebUrl) + '&mwebForm' + encodeURIComponent(res.data.mwebForm);
resolve();
} else if (res.data.mwebUrl) {
window.location.href = res.data.mwebUrl;
resolve();
} else if (res.data.mwebForm) {
$('body').append(res.data.mwebForm);
resolve();
} else {
reject();
}
}).fail(function() {
reject();
});
});
};
```
以上是我对这段代码的优化建议,希望能对你有所帮助。
阅读全文