Встречается на собеседованиях • сегодня
Можно ли сделать анимацию, используя только промисы
Да, можно, но это не лучший подход. Промисы не предназначены для анимаций напрямую, так как они не контролируют частоту кадров и не интегрируются с 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-анимации, так как они оптимизированы для плавного рендеринга.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы