这个问题已经被问了很多,但是我找不到解决这个确切问题的方法。
我希望在调用另一个函数之前同步加载两个函数,并认为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();