JQuery always() 方法是一種用于添加一個回調函數,該函數會在 deferred 對象被解決或拒絕時執行的方法。
$("selector").always(function(){ // code to be executed });
always() 方法與 then() 方法相似,但有一個重要區別。如果 deferred 對象被解決,then() 方法中的回調函數會被執行,而 always() 中的回調也會被執行。如果 deferred 對象被拒絕,then() 方法中的回調函數不會被執行,但 always() 中的回調會被執行。
下面是一個例子,說明了 always() 方法如何工作:
var deferred = $.Deferred(); deferred.resolve("Done"); deferred.always(function(result){ console.log("Always function called with result: " + result); }); deferred.done(function(result){ console.log("Done function called with result: " + result); }); deferred.fail(function(result){ console.log("Fail function called with result: " + result); });
在這個例子中,我們創建了一個 deferred 對象,并使用 resolve() 方法進行解決。我們分別綁定了 always()、done() 和 fail() 方法,每個方法都包含了一個回調函數。當 deferred 對象被解決時,所有三個回調函數都會被執行。
輸出結果如下:
Always function called with result: Done Done function called with result: Done
由于 deferred 對象被解決,因此只有 always() 和 done() 方法的回調函數會被執行。
總結一下,JQuery always() 方法是 deferred 對象的一個回調函數,當 deferred 對象被解決或拒絕時都會被執行。與 then() 方法不同,always() 方法始終執行回調函數,不管 deferred 對象是被解決還是被拒絕。