Ich versuche, eine Verkettung der gleichen asynchronous
Methode zu erreichen. Grundsätzlich möchte ich einfach animation.animate({}).animate({})
anrufen. Die zweite animierte Methode muss aufgerufen werden, sobald die erste abgeschlossen ist.Asynchrones Verfahren Verkettung
Hier ist, was ich getan habe, ich denke, es ist in der Nähe, aber ich kann immer noch nicht finden, wie es funktioniert.
class Animation {
constructor() {
this.queue = new Promise((resolve,reject)=> {resolve()})
}
animate(params) {
this.queue.then(() => {
return this.cssAnimate(params);
})
return this;
}
cssAnimate(params) {
return new Promise((resolve,reject) => {
//do stuff to animate
params.el.addEventListener('transitionend',() => {resolve()})
})
}
}
let animation = new Animation();
animation
.animate({})
.animate({})
Was ist/ist nicht passiert, dass Sie nicht sind/erwarte? – naomik
Welcher Teil funktioniert nicht? Ich denke, der Schlüssel ist, sicherzustellen, dass 'resolve()' in 'cssAnimate()' nur dann aufgerufen wird, wenn Sie sicher sind, dass die Animation fertig ist. – gregnr