$.when(fetchingOutcomeTab()).done(alert("1"));
function fetchingOutcomeTab() {
var dfd = $.Deferred();
setTimeout(function() {
dfd.resolve('qqqqq');
}, 2000);
return dfd.promise();
}
我试图提醒(" 1")触发等待,直到fetchingOutcomeTab功能完成,但每次它都会立即触发,请帮助。
答案 0 :(得分:0)
由于函数返回延迟对象,因此可以将done()
直接链接到函数调用。此外,done()
期望参数是"函数或函数数组"。
fetchingOutcomeTab().done(function() {
console.log('resolved.');
});
function fetchingOutcomeTab() {
console.log('Deferring...');
var dfd = $.Deferred();
setTimeout(function() {
dfd.resolve('qqqqq');
}, 2000);
return dfd;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
答案 1 :(得分:0)
您需要将函数传递给.done()
。您立即呼叫alert()
并传递其返回值。
$.when(fetchingOutcomeTab()).done(() => alert("1"));