0
我试图实现同一个asynchronous
方法的链接。基本上我想要做的只是拨打animation.animate({}).animate({})
。第一个完成后需要调用第二个动画方法。异步方法链接
这是我做的,我认为它很接近,但我仍然无法找到如何使它工作。
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({})
是什么/是不会发生,你是不是/正在期待? – naomik
什么部分不起作用?我认为关键在于确保只有在确定动画完成后才在'cssAnimate()'中调用resolve()。 – gregnr