Встречается на собеседованиях • сегодня

Можно ли сделать анимацию, используя только промисы

Да, можно, но это не лучший подход. Промисы не предназначены для анимаций напрямую, так как они не контролируют частоту кадров и не интегрируются с event loop анимаций браузера. Однако, пример с промисами:

javascript
function animateWithPromises(element, duration) {
  return new Promise((resolve) => {
    const start = Date.now();
    
    function update() {
      const elapsed = Date.now() - start;
      const progress = Math.min(elapsed / duration, 1);
      
      element.style.opacity = progress;
      
      if (progress < 1) {
        Promise.resolve().then(update); // Рекурсивный вызов через промис
      } else {
        resolve();
      }
    }
    
    update();
  });
}

animateWithPromises(document.getElementById('box'), 1000)
.then(() => console.log('Анимация завершена'));

text

Лучше использовать `requestAnimationFrame` или CSS-анимации, так как они оптимизированы для плавного рендеринга.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы