【发布时间】:2017-07-15 12:52:50
【问题描述】:
我正在尝试实现相同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({})
【问题讨论】:
-
发生了什么/没有发生你没有/期望的事情?
-
哪个部分不工作?我认为关键是确保只有在您确定动画完成时才在
cssAnimate()中调用resolve()。
标签: javascript asynchronous ecmascript-6 promise