1
如果你有一個函數既有.then
又有.always
回調函數,哪一個函數會先執行?jQuery中的第一個.always()或.then()回調是什麼?
如果你有一個函數既有.then
又有.always
回調函數,哪一個函數會先執行?jQuery中的第一個.always()或.then()回調是什麼?
從deferred.resolve()
文檔摘自:
當延遲得到解決,通過 deferred.then()或deferred.done()添加任何doneCallbacks被調用。回調按照添加順序執行 。
下例:
var $logger = $("#logEntry");
function addLog(content){
$logger.append($("<li/>").html(content));
}
var newPromise = $.Deferred();
$.when(newPromise).done(function() {
addLog("1st $when().done!");
});
newPromise.then(function() {
addLog("1st then!");
}).always(function() {
addLog("1st always!");
}).done(function() {
addLog("1st done!");
}).done(function() {
addLog("2nd done!");
}).always(function() {
addLog("2nd always!");
}).then(function() {
addLog("2nd then!");
});
$.when(newPromise).done(function() {
addLog("2nd $when().done!");
});
addLog("Resolving promise!");
newPromise.resolve();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul id="logEntry"></ul>
在您的示例中,「always」與「then」相關,這與OP要求的有所不同。 – zerkms
你爲什麼不只是嘗試一下,看看,我猜',然後()' – adeneo
而我只是做了,拿了1分鐘,而我是對的 - > ** http://jsfiddle.net/adeneo/ou1sy6uw/** – adeneo
但是,交換它們,它們返回的方式不同 - > ** http://jsfiddle.net/adeneo/ou1sy6uw/1/ **,所以無論他們添加的順序 – adeneo