dojo/_base/fx 是否支持承诺?

Does dojo/_base/fx support promises?

我需要在 dom 元素上的动画结束后执行一个方法。 目前我正在使用以下代码但没有成功。

我想知道dojo是否支持动画的promise,如果没有,我想知道我可以用什么方法来解决。

       fx.fadeOut({ node: 'target'}).play().then(function () {
            // do smt here
        }.bind(this));

我能够使用 'dojo/on' 并订阅 fx.fadeOut() 上的 End 事件来解决这个问题。我仍然很想了解是否有更好的方法来获得相同的结果。

       var anim = fx.fadeOut({ node: 'target'}).play();
        on(anim, "End", function () {
            // dom smt here
        }.bind(this));

是的,您可以使用 FadeOut 函数的已注册回调。

fadeOutdojo/_base/fx函数其中returns一个动画实例) 提供 5 个已注册的回调函数:

  • 开始前
  • 开始时
  • onEnd
  • 播放
  • onAnimate(带参数)

在你的情况下,你需要在动画完成后做一些动作,所以在 FadOut 参数中传递 onEnd 函数,它应该看起来像:

fx.fadeOut({
    node:"target",
    onEnd: function(){
         // Some stuff at the end of the animation.
    }
}).play();

你也可以使用上面的回调作为参数。