查看此代码:
<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()
function asyncFunct(){}
setTimeout()
您不能创建真正的自定义异步函数。您最终将不得不利用本机提供的技术,例如:
setInterval
setTimeout
requestAnimationFrame
XMLHttpRequest
WebSocket
Worker
onload