Добавление 24-часового таймера для каждого товара, добавленного в корзину

Я пытаюсь добавить 24-часовое ограничение по времени для каждого товара, добавленного в корзину. Я хочу, чтобы товары удалялись из корзины по истечении этого времени.

const isExpired = (timestamp) => {
    const now = new Date().getTime();
    const oneDay = 24 * 60 * 60 * 1000;
    return now - timestamp > oneDay;
};
 

const removeExpiredItems = () => {

    for (let productId in cart) {

        if (isExpired(cart[productId].addedAt)) {
            delete cart[productId];
        }
    }
};

Эффект добавления товара в корзину и последующего его удаления через 24 часа может быть достигнут следующим образом:

let cart = [];

function addItem(naem) {
    let item = {
        id: "item" + cart.length, // in production use something good
        name: name,
        created: Date.now()
    }
    cart.push(item);

    const interval = setInterval(() => {
        if (Date.now() - item.created >= 86400000 && cart.indexOf(item) !== -1) {
            cart.splice(cart.indexOf(item), 1);
            clearInterval(interval);
        } // else item doesnt exist or the 24 hours has not passed yet
    }, 1000);
};

addItem("this item will only exist for 24 hours.");

Приведенный выше код создает функцию addItem, которая принимает name добавляемого элемента.

Надеюсь, это поможет.

Вернуться на верх