Animejs и промисы. Как сделать перезапуск?

Пишу кастомный слайдер, в коде использую библиотеку animejs.
timeLine - линия показывающая сколько осталось до смены слайда.
function timing должна вернуть true при выполнении, это я сделал, но теперь когда я пытаюсь получить объект animeTiming , что бы перезапустить анимацию по клику на buttonNext, я получаю promis.
const timeLine      = document.querySelector('.slider-timing__line');
const buttonNext    = document.querySelector('.slider-arrow.next');
let animeTiming

buttonNext.addEventListener('click', nextSlide);
function nextSlide(event) {
    event.preventDefault()

  console.log(animeTiming); //promise{<pending>}
}

async function timing(duration, delay) {
    let isComplete = false;
    animeTiming = anime({
        targets: timeLine,
        width: ['0%', '100%'],
        duration,
        delay,
        easing: 'linear',
        complete: () => {
            timeLine.removeAttribute('style');
            isComplete = true;
        }
    }).finished;

    await Promise.all([animeTiming]);
    return isComplete;
};


async function test() {
    let a = await timing(10000, 1000);
    console.log( a );
}
test()

Подскажите что нибудь.
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы