サンプルアプリからバックボーンを理解しようとしています(https://github.com/elfsternberg/The-Backbone-Storeを参照)。以下のコードに示すように、コードはjQueryのDeferredとpromise()を使用します。jQueryのドキュメントを読みましたが、以下の例からこれらのメソッドがどのように使用されているかを理解するのに問題があります。この質問に答えるにはもっとコードが必要かもしれませんが、そうではないかもしれません。これらは私がそれについて持っている質問です
1)fadeOutが実行されると、dfd.resolveが呼び出されますか?もしそうなら、dfd.resolveは何をトリガーしますか?
2)promise.promise();を返すことによって何が起こっているか。Deferredメソッドを呼び出していますか?いつ?なぜこのように行われるのですか?これは再帰的な方法のように見えますか?
3)dfd.resolveがこのコードに示されていない他のメソッドをトリガーしている可能性はありますか?
hide: function() {
if ((":visible") === false) {
return null;
}
promise = $.Deferred(_.bind(function(dfd) {
this.el.fadeOut('fast', dfd.resolve)}, this));
return promise.promise();
},
show: function() {
if (this.el.is(':visible')) {
return;
}
promise = $.Deferred(_.bind(function(dfd) {
console.log("in promise section of show in base view");
this.el.fadeIn('fast', dfd.resolve) }, this))
return promise.promise();
}