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