Пауза setTimeout
Есть массив:
Array<{type: String, text: String, time: Number}>
Есть код который добавляет элементы в массив и через n время удаляет первый добавленный элемент:
add(state, info) {
state.list.push({
type: info.type,
text: info.text,
});
setTimeout(() => state.list.shift(), info.time);
}
При вызове функции add(), если state.list.length === 5 - необходимо остановить выполнение этой же функции, пока setTimeout не будет закончен.
Как это реализовать ?
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
add(state, info) {
let addNow = state.list.length < 5;
if (addNow) {
state.list.push({
type: info.type,
text: info.text,
});
}
setTimeout(() => {
state.list.shift();
if (!addNow) {
state.list.push({
type: info.type,
text: info.text,
});
}
}, info.time);
}