2

jQuery 延迟对象是否有任何简写来设置依赖关系,即“当我完成时,那件事也完成了吗?” 下面感觉很麻烦:

a = new jQuery.Deferred();
b = new jQuery.Deferred();

a.done(function(result){alert(result);});
b.done(function(result){a.resolve(result);}); // this line doesn't feel right

b.resolve("Hey there!")

我喜欢类似的东西b.alsoResolves(a)。我查看了文档,但似乎找不到任何合适的东西。有没有比上述方法更好的方法来创建延迟对象之间的依赖关系?

4

1 回答 1

1

由于我们现在可以按顺序注册多个回调,我个人觉得这样设置依赖关系更简洁:

a = $.Deferred();
b = $.Deferred();

a.done(fncDoStuffForA);

b.done(fncDoStuffForB);
b.done(a.resolve)

b.resolve("Hey there!")

http://jsfiddle.net/rkw79/cdkG3/

于 2011-07-29T06:25:11.053 回答