Добавление 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
добавляемого элемента.
Надеюсь, это поможет.