Спасибо за развернутые вопросы. Как раз не мог понять в чем мои косяки.
Постараюсь ответить как я рассуждал при написании.
1. Обратил внимание что функция асинхронная и создание блока заимает время.
2. Действительно, не зачем, переписал код. (Хотел иметь возможность получить последний созданный блок)
3. Действительно, не зачем, переписал код с использованием this. (Когда писал думал что нужен экземпляр для использования методов, затупил)
4. тоже что и в 3.
5. Он писался в свойство, последнего созданного блока, по сути тоже не зачем, переписал.
class Block {
constructor(data) {
if (!data.type) {
throw new Error('No type passed in Block constructor!');
}
this.color = data.color || '';
this.type = data.type;
}
prepareForSending() {
this.color = this.color.toUpperCase();
return this;
};
}
function send(data) {
fetch('http://test.com', {
method: 'POST',
body: JSON.stringify(data),
})
.catch(console.log)
}
function initSending(data) {
setInterval(() => {
send( data );
}, 10000);
}
const block = new Block({ type: 'brick', color: 'red' });
initSending( block.prepareForSending() );
Option: cacheIgnore
Allows Barba to cache your pages.
Saving pages in the cache result in less bandwidth usage and less server-side load: no XMLHttpRequest are made for pages that have already been visited.
If disabled, Barba will retrieve each page from the server on every request: this could be useful if your page contains scripts that need to be evaluated on each page call.
А на самом деле немного странно. Мне кажется если у вас объявлены функции работы с корзиной, то больше вам их не нужно объявлять. Или я чего-то не понимаю