Javascript 等待延迟/异步功能完成
我正在构建一个基于jQuery的库,它在一个元素上触发了许多自定义事件(beforeShow、show、afterShow、beforeshide、hide、afterHide) 用户将能够定义自己的函数,这些函数在启动时运行。然而,由于它们可能涉及动画或异步请求,我不能简单地一个接一个地触发所有的*show事件(例如)。目前,我要求任何自定义函数都必须触发下一个事件 因此,如果用户定义自己的函数在触发Javascript 等待延迟/异步功能完成,javascript,jquery,asynchronous,deferred,Javascript,Jquery,Asynchronous,Deferred,我正在构建一个基于jQuery的库,它在一个元素上触发了许多自定义事件(beforeShow、show、afterShow、beforeshide、hide、afterHide) 用户将能够定义自己的函数,这些函数在启动时运行。然而,由于它们可能涉及动画或异步请求,我不能简单地一个接一个地触发所有的*show事件(例如)。目前,我要求任何自定义函数都必须触发下一个事件 因此,如果用户定义自己的函数在触发beforeShow时运行,则该函数必须触发show事件,然后该事件必须触发afterShow
beforeShow
时运行,则该函数必须触发show
事件,然后该事件必须触发afterShow
事件
这并不理想,我想知道是否有任何方法可以让我等待函数完成,而用户不必手动触发下一个事件。我在看<代码>$。延迟,但这需要返回延迟对象,为了强加给我的用户,这一点也不好。只是澄清一下,动画完成后您已经在使用回调函数了?我知道如何做到这一点的唯一方法是使用一个自调用函数,根据刚刚完成的动画播放下一个动画。我的库没有提供回调函数。不过,用户的自定义函数可能会提供对自己动画的回调。函数本身不调用下一个动画。它触发元素上的事件。该元素可能有另一个绑定到执行下一个动画的新激发事件的函数。