何时返回jQuery函数,而不是仅仅调用它

When to return a jQuery function as opposed to just calling it?

本文关键字:调用 返回 jQuery 函数 何时      更新时间:2024-03-19

我一直在读一些关于JS回调排队而不将它们堆叠在这里的文章,如何在不堆叠回调的情况下在jQuery中设置动画?

我试着绕过Julian Aubourg的答案,注意到在从函数中删除"return"语句后,一切都会同时发生。

我只是想知道这些返回语句的行为是什么,以及它们在使代码同步中扮演什么角色。

    $('div1').fadeOut('slow').promise().pipe(function() {
        return $('div2').fadeOut('slow');
    }).pipe(function() {
        return $('div3').animate({ top: 500 }, 1000 );
    });

所有jQuery动画现在都返回自己的promise,所以基本上你返回的是一个在动画完成时解决的promise:

return $('div2').fadeOut('slow');

这相当于

var def = new $.Deferred();
$('div2').fadeOut('slow', function() {
    def.resolve();
});
return def.promise();