我的意思是,看看這個code:如何在Javascript中創建一個異步函數?
<a href="#" id="link">Link</a>
<span>Moving</span>
$('#link').click(function() {
console.log("Enter");
$('#link').animate({ width: 200 }, 2000, function() {
console.log("finished");
});
console.log("Exit");
});
,你可以在控制檯中看到,在「動畫」功能是異步的,並且它「叉」的事件處理程序塊碼流。其實:
$('#link').click(function() {
console.log("Enter");
asyncFunct();
console.log("Exit");
});
function asyncFunct() {
console.log("finished");
}
跟着塊代碼的流程!
如果我想創建我的function asyncFunct() { }
與此行爲,我怎麼能做到這一點與JavaScript/jQuery的?我認爲有沒有使用策略setTimeout()
看看jQuery的源代碼:) – yatskevich 2012-03-01 13:19:14
.animate()方法使用回調。動畫完成後,Animate將調用回調。如果你需要和.animate()相同的行爲,你需要的是一個回調(在其他操作之後由「main」函數調用)。如果你需要一個「完整的」異步函數(這是一個在不阻止執行流程的情況下調用的函數),它是不同的。在這種情況下,您可以使用setTimeout(),延遲時間接近0。 – 2012-03-01 13:23:25
@Fabio Buda:爲什麼callback()應該實現一種異步?事實上,它實際上並沒有http://jsfiddle.net/5H9XT/9/ – markzzz 2012-03-01 13:45:05