Фон
Я изучаю синтаксис Async / Await и подумал, что у меня есть умный способ ожидания при построении CSS-переходов.Это не работает, хотя, и я не могу понять, почему.
Код
const setStyleAndWait = async function( el, property, value ) {
var setTheStyle = (el, property, value) =>
new Promise(resolve => {
el.style[property] = value;
const transitionEnded = e => {
if (e.propertyName !== property) return;
el.removeEventListener('transitionend', transitionEnded);
resolve();
}
el.addEventListener('transitionend', transitionEnded);
});
await setTheStyle( this, property, value );
console.log('Run logic inside await\'s parent scope');
};
setStyleAndWait( element, 'opacity', '0' ); // element is a reference to an element with a transition on for it's opacity style
console.log('Run logic outside await\'s parent scope.)
Вопрос
Когда я запускаю это, внешний console.log запускается немедленнопока внутренний ждет, пока обещание не будет решено.Почему внешняя логика не ожидает завершения функции?