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

2024-01-07

看看这个code http://jsfiddle.net/5H9XT/5/ :

<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");    
});

正如您在控制台中看到的,“animate”函数是异步的,它“分叉”了事件处理程序块代码的流程。实际上 :

$('#link').click(function () {
    console.log("Enter");
    asyncFunct();
    console.log("Exit");    
});

function asyncFunct() {
    console.log("finished");
}

遵循块代码的流程!

如果我想创建我的function asyncFunct() { }对于这种行为,我该如何使用 javascript/jquery 来做到这一点?我认为有一种策略不使用setTimeout()


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

  • setInterval
  • setTimeout
  • requestAnimationFrame
  • XMLHttpRequest
  • WebSocket
  • Worker
  • 一些 HTML5 API,例如文件 API、Web 数据库 API
  • 支持的技术onload
  • ... 好多其它的

其实对于动画jQueryuses https://github.com/jquery/jquery/blob/master/src/effects.js#L475 setInterval.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Javascript 中创建异步函数? 的相关文章

随机推荐