Что такое сокращение для установки зависимостей в отложенных объектах jQuery? - PullRequest
2 голосов
/ 29 июля 2011

Есть ли у jQuery Deferred объекты какие-либо сокращения для установки зависимостей, т. Е. "Когда я закончу, это тоже будет сделано?" Ниже кажется громоздким:

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). Я посмотрел на документацию , но не могу найти ничего подходящего. Есть ли лучший способ создания зависимостей между отложенными объектами, чем приведенный выше?

1 Ответ

1 голос
/ 29 июля 2011

Поскольку теперь мы можем последовательно регистрировать несколько обратных вызовов , я лично считаю более понятным установить зависимости таким образом:

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

a.done(fncDoStuffForA);

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

b.resolve("Hey there!")

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

...