jQuery:$ .when()。done()不等待/永不触发

时间:2018-09-21 20:05:37

标签: javascript jquery deferred

这个问题已经被问了很多,但是我找不到解决这个确切问题的方法。

我希望在调用另一个函数之前同步加载两个函数,并认为jQuery的$.when().done()应该可以工作,但我不知道。

这是一些简化的代码,下面是jsFiddle(在此版本中,wrapItUp()立即触发):

HTML:

<span>-</span>
<a>-</a>

javascript(jQuery):

var num = 0;

function funk1() {
    setTimeout(function() {
        num++;
        $("a").text(num);
    }, 750);
};

function funk2() {
    setTimeout(function() {
        num ++;
        $("a").text(num);
    }, 1500);
};

function wrapItUp() {
    $("span").text(num);
};

$.when(funk1(), funk2()).then(function() {
    wrapItUp()
});

jsFiddle:http://jsfiddle.net/8pLg3jcm/29/

我还尝试在funk()函数中包含以下内容(在此版本中,wrapItUp()永远不会触发):

var dfd = jQuery.Deferred();
...code...
return dfd.promise();

0 个答案:

没有答案