我試圖用jQuery $.Deferred
使用then
將函數鏈接在一起。使用jQuery推遲鏈式異步功能
我已經通讀了文檔,很確定我在某個地方犯了一個愚蠢的錯誤,但我無法獲得功能second
來等待first
完成。
HTML
<ul>
</ul>
JS(jQuery的2.1)
function first() {
let deferred = $.Deferred();
setTimeout(function() { // Any async function.
$('ul').append('<li>First</li>');
deferred.resolve();
}, 500);
return deferred.promise();
}
function second() {
let deferred = $.Deferred();
$('ul').append('<li>Second</li>');
deferred.resolve();
return deferred.promise();
}
$(function() {
$.when(first()).done().then(second());
})
在現實中,我想保留鏈接(因此second
承諾爲好)。
的jsfiddle:https://jsfiddle.net/jdb1991/n3aory8c/
任何想法?先謝謝了。
謝謝!對我而言,這是一個愚蠢的疏忽。 – jdborg
不客氣,@jdborg! – eisbehr