В чем разница между .resolve () и .promise ()? - PullRequest
30 голосов
/ 04 октября 2011

Я копаюсь в отложенных функциях jQuery.Я попробовал несколько примеров в интернете.Я понял его концепцию, но я не понимаю разницу между resolve() и promise().

В чем различия между resolve() и promise()?

1 Ответ

33 голосов
/ 04 октября 2011

Оба resolve() и promise() являются методами объекта jQuery Deferred.

Сначала фрагмент из документации jQuery о Deferred :

Одна из моделей понимания Отложенного - думать о нем как о функция-зависимая оболочка Deferred.then (), deferred.done (), и методы deferred.fail () определяют вызываемые функции и Методы deferred.resolve (args) или deferred.reject (args) «вызывают» функции с аргументами, которые вы предоставляете.

Имея это в виду, promise() возвращает объект, который очень похож на объект Deferred, за исключением того, что он имеет только методы then(), done() и fail(), а не иметь resolve() или reject().

Из сообщения блога m-sharp, упоминаемого относительно promise():

Это полезно, когда вы хотите дать вызывающему API что-то для подписаться, но не разрешать или отклонять отложенные.

...