我已经搜索过堆栈这样的问题并且找不到明确的答案。我有一个小提琴,用一个字母的字母输入。但是当我运行两次函数时,它会一起完成。我尝试使用的时候然后它仍然似乎不起作用。我希望结果是“Hello,World!Hello2”,而是将它打印在一起,“HHeelllloo ....”
http://jsfiddle.net/Jsbbvk/vL8tLwfh/
(一些伪代码)
$.when(showText(param1, param2)).then(function() {
showText(param3, param4);
});
答案 0 :(得分:0)
我试着解释它为什么会发生:
我尝试修复你的代码,而不是使用$ .when和$ .the,我正在使用回调函数。因此,在setInterval完成作业之前,回调不会调用。
function showText (target, message, index, interval, callback) {
if (index < message.length) {
$(target).append(message[index++]);
var session = setTimeout(function () {
showText(target, message, index, interval, callback);
if(index === message.length -1){
callback ? callback() : null;
}
}, interval);
}
}
$(function () {
showText("#msg", "Hello, World!", 0, 500, function(){
showText("#msg", "Hello2", 0, 500)
})
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div id="msg"/>
<span id="text_target"></span>
&#13;