【发布时间】:2016-08-15 15:00:00
【问题描述】:
我正在尝试使用 jQuery $.Deferred 使用 then 将函数链接在一起。
我已通读文档,很确定我在某处犯了一个愚蠢的错误,但我无法让函数 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/
有什么想法吗?提前致谢。
【问题讨论】: