一尘不染

如何在Javascript中创建异步函数?

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()


阅读 654

收藏
2020-04-25

共1个答案

一尘不染

您不能创建真正的自定义异步函数。您最终将不得不利用本机提供的技术,例如:

  • setInterval
  • setTimeout
  • requestAnimationFrame
  • XMLHttpRequest
  • WebSocket
  • Worker
  • 一些HTML5 API,例如文件API,Web数据库API
  • 支持的技术 onload
  • … 很多其他的
2020-04-25