JQuery是一種JavaScript庫,旨在使JavaScript更簡單和易于使用。JQuery的一個非常強大的功能是Deferred對象,它是處理異步調用和回調的一種方式。其中done和then是兩個非常重要的方法,它們可以用來處理異步操作的結果。
在JQuery中,我們經常需要向服務器發送一個異步請求,服務器返回數據后我們需要執行某些任務。我們使用$.ajax()方法來執行這個操作。這個方法返回一個Promise對象,我們可以使用done()和then()方法來處理異步請求的結果。
done()方法在異步操作完成后執行。它接受一個或多個函數作為參數,當異步操作成功執行時,這些函數將被調用。如果異步操作失敗,done()方法則不會執行。done()方法的返回值是一個Promise對象,所以它可以鏈式調用。
$.ajax({ url: "/your/url", success: function(data) { console.log("Success!"); } }).done(function() { console.log("Another success function!"); }).done(function() { console.log("Yet another success function!"); });
then()方法是done()方法的變體。它接受兩個參數:成功回調函數和失敗回調函數。成功回調函數在異步操作成功時執行,失敗回調函數在異步操作失敗時執行。在then()方法中,我們可以使用匿名函數來代替done()方法。
$.ajax({ url: "/your/url", success: function(data) { console.log("Success!"); } }).then( function() { console.log("Another success function!"); }, function() { console.log("Error!"); } );
總之,done()和then()方法是JQuery中非常重要的方法,它們可以用來處理異步操作的結果,使我們的代碼更加可讀和易于維護。