首页 > 编程笔记

JS回调函数

事件驱动的异步实现方案也会使用回调函数,但这些回调函数都必须要有一个事件触发者的角色存在。

换句话说,必须要有人单击 Web 页面上的按钮或者向服务器发送 http 请求,我们事先注册的事件响应函数才会被调用;并且如果这个事件被反复触发,该函数也会反复被调用。

下面介绍一种会自动执行的一次性的异步实现方案。例如,如果我们想让程序延时一秒再调用一个函数,就可以这样写:
setTimeout(function() {
  console.log('异步操作');
}, 1000);
在这段代码中,我们给 setTimeout() 函数传递了两个实参。第一个实参是要延时执行的回调函数,第二个实参是要延长的具体时间,单位为毫秒。

换言之,上述调用的作用就是在 1000 毫秒(即一秒)之后执行输出异步操作字符串的函数。

请注意,这里不需要任何人触发任何事件,只要过了指定的时间,回调函数就会被执行。

为了证明这里执行的是一个异步调用,我们接下来在异步操作中加入一些同步操作,然后看看它们的输出顺序:
console.log('同步操作_1');

setTimeout(function() {
  console.log('异步操作_1');
}, 1000);

console.log('同步操作_2');

setTimeout(function() {
  console.log('异步操作_2');
}, 500);

console.log('同步操作_3');
 以上代码输出:
     同步操作_1
     同步操作_2
     同步操作_3
     异步操作_2
     异步操作_1

由以上结果可知,同步操作会在异步操作之前全部输出,并且由于异步操作 _2 设定的延时小于异步操作 _1,所以它也会被先执行。

关注公众号「站长严长生」,在手机上阅读所有教程,随时随地都能学习。本公众号由站长亲自运营,长期更新,坚持原创,持续分享创业故事+学习历程+工作记录+生活日常+编程资料。

公众号二维码
微信扫码关注公众号

优秀文章