0
我已经搜索到处寻找一个解决方案,但迄今还没有找到任何东西(我可能使用了错误的关键字!如果这是重复的,请指出,我会删除)。延迟回拨,直到setTimeout完成
难道你们中的一位杰出的SO天才善良地向我解释为什么以下不能如人所愿?我的意思是complete
回调在setTimeout
在success
回调内完成之前调用,我不太明白为什么。
$.ajax({
url: options.url,
data: options.data,
success: function(){
setTimeout(function(){
console.log('firing');
},2000);
},
dataType: options.dataType,
complete: function(){
console.log('ended');
}
});
是因为一个新的线程已经通过了setTimeout
的success
回调中已经启动?
如果不将回调函数传入success
回调函数,可以实现这种情况吗?
这很快+1,正如我怀疑! :-(如果回调中没有超时,而是大量代码需要200ms才能完成,那么这会推迟“完成”回调吗?换句话说,这是不是仅仅因为我使用' setTimeout'? –
我必须误读之前...当然,没有超时完成只会在成功产生“我完成”事件后触发。我相信,如果开始思考事件,就可以轻松解决问题。 ;)只需定义并触发你自己的。 –
'complete'回调意味着一旦'success'回调完成就会被调用!那么这怎么会失效呢? –