我試圖從示例應用程序中找出主幹(請參閱https://github.com/elfsternberg/The-Backbone-Store)。代碼使用jQuery的Deferred和promise(),如您在下面的代碼中看到的。我已經閱讀了關於jQuery的文檔,但從下面的示例中找出如何使用這些方法時遇到困難。你可能需要更多的代碼來回答這個問題,但也許不需要。這些是我有關於它的問題jQuery:推遲/承諾
1)是否dfd.resolve調用一次fadeOut完成?如果是這樣,dfd.resolve觸發器是什麼?
2)返回的信息promise.promise();它是否調用延遲方法?什麼時候?爲什麼這樣做?這似乎是一個遞歸方法?
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();
}
對於第二個問題,看http://stackoverflow.com/q/8073528/1048572 – Bergi