yavispuu 2014-06-11 18:41 采纳率: 0%
浏览 863

本人刚入门js,请问像如下的这段代码大致该怎么重构

var prepareCart = function (host, accessToken, username, state, count,filename) {
if (count == 0) {
completeTest(state);
}
else {
log("INFO", "Preparing the cart");
request.post({
url: host + '/ls/api/testing/randomItems',
headers: {
'Authorization': 'Bearer ' + accessToken
},
form: {
"type": "Product",
"count": 10
}
},
function (error, postResponse, body) {
//console.log(body);
var randomProducts = JSON.parse(body);
request.post({
url: host + '/ls/api/testing/randomItems',
headers: {
'Authorization': 'Bearer ' + accessToken
},
form: {
"type": "Account",
"count": 1
}
},
function (error, postResponse, body) {
//console.log(body);
var randomAccount = JSON.parse(body)[0];
//Now we can create a cart
var cart = {}
cart["headers"] = {
category: "work", type: "Cart",
clientId: "TEST-" + uuid.v1(),
revisionId: uuid.v1(),
action: "Create"
}
cart["data"] = {
cartId: cart.headers.clientId,
accountId: randomAccount["data"]["accountId"],
name: cart.headers.clientId,
processStatus: "/Workflow/processStatus[Verify]",
processType: "/Workflow/cartType[Order]/processType[1]",
userId: username,
combineForInvoice: true,
lineItems: []
}
var lineItemId = 0;
randomProducts.forEach(function (product, index) {
if (product == null) {
return;
}
var productId = product.data.productId;
var productDescription = product.data.productDescription;
var uom = product.data.baseUOM;
lineItem = {
lineItemId: lineItemId,
productId: productId,
uom: uom,
productDescription: productDescription,
requestedQuantity: 10
}
cart.data.lineItems.push(lineItem);
lineItemId = lineItemId + 1;
});
})
});
}

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 04:56
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这段代码的目的是创建一个购物车。它首先检查用户是否选择了任何商品,并且如果选择了商品,则开始准备购物车。然后,它请求随机的商品和账户信息,将它们添加到购物车中。

    以下是重构后的代码:

    // 假设这是你的前端逻辑
    function createCart(host, accessToken, username, state, count) {
        if (count === 0) {
            completeTest(state);
        } else {
            console.log('INFO', 'Preparing the cart');
            const data = {
                headers: { 
                    category: 'work', 
                    type: 'Cart',
                    clientId: 'TEST-' + uuid.v1(),
                    revisionId: uuid.v1(),
                    action: 'Create'
                },
                data: {
                    cartId: data.headers.clientId,
                    accountId: getRandomAccountId(username),
                    name: data.headers.clientId,
                    processStatus: "/Workflow/processStatus[Verify]",
                    processType: "/Workflow/cartType[Order]/processType[1]",
                    userId: username,
                    combineForInvoice: true,
                    lineItems: []
                }
            };
            request.post({
                url: host + '/ls/api/testing/randomItems',
                headers: {
                    'Authorization': 'Bearer ' + accessToken
                },
                form: data
            }).then(response => {
                response.json().then(json => {
                    json.forEach(product => {
                        if (!product || !product.data || !product.data.productId) {
                            return;
                        }
                        const productId = product.data.productId;
                        const productDescription = product.data.productDescription;
                        const uom = product.data.baseUOM;
                        const lineItem = {
                            lineItemId: data.lineItems.length,
                            productId: productId,
                            uom: uom,
                            productDescription: productDescription,
                            requestedQuantity: 10
                        };
                        data.data.lineItems.push(lineItem);
                    });
                });
            });
        }
    }
    
    function getRandomAccountId(username) {
        // 这里应该是从数据库或服务中获取随机账号ID
    }
    

    请注意,这个重构没有改变原始代码的功能,只是简化了代码结构和注释。在实际使用中,你需要根据实际情况来实现这些功能。

    评论

报告相同问题?