我正在处理一个弹出式 div,我想在动画上附加一个承诺,这样我就可以在弹出式窗口结束后做一些事情。
我的方法不起作用,因为我找不到将承诺传递给事件处理程序上的函数的方法。似乎你不能在这里使用 bind 。我已经尝试过,虽然我可以解决承诺,但我无法删除事件处理程序
这里会有什么不同的解决方案?
function EventListenerForPopUp() {
this.removeEventListener("animationend", EventListenerForPopUp );
this.Show.resolve();
}
function ShowHideDiv() {
this.Show = function () {
return new Promise(function(resolve, reject) {
this.Div.addEventListener("animationend", EventListenerForPopUp, false);
}.bind(this));
}
}
原文由 Jose Neto 发布,翻译遵循 CC BY-SA 4.0 许可协议
您不需要将承诺传递给事件处理程序,您需要传递
resolve
回调:这对我来说有点难看,也许你可以看看这样的东西: