我试图用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