1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > JS定时器和单线程异步特性

JS定时器和单线程异步特性

时间:2019-10-08 22:40:35

相关推荐

JS定时器和单线程异步特性

web前端|js教程

JS定时器

web前端-js教程

这篇文章主要介绍了关于JS定时器和单线程异步特性,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

g.729 源码,vscode中单词翻译插件,ubuntu20.04,tomcat写文件权限,阿里开源爬虫,php 前30天,湖北新款seo代运营,视频网站分享下级的源码,英文响应式网页模板lzw

首先要说的是,定时器相关的方法都是属于BOM方法,而定时器呢,它是用于在设定的时

间执行一段代码,或者在给定的时间间隔内重复该代码。具体函数:

代挂网php源码,阿里ubuntu安装php,tomcat启动后访问端口,爬虫reboot协议,合并数组元素值php,seo 老板lzw

setTimeout(callback, delay);//delay一定的时间后,执行回调函数只执行一次setInterval(callback, delay);//每隔一段时间执行一次callback,反复执行clearInterval(timer);//清除定时

定时器确实很好用,但是却又不好用,为什么这么说呢?

我们知道JS是单线程的,既然是单线程那么就很容易出现线程被堵塞的情况,怎么解决

呢?——异步!

当然JS是单线程的它本身是不能异步的,但JS的宿主环境(比如浏览器,node)是多线程

的,宿主环境通过某种方式(比如:node的事件驱动)使得JS具备了异步的特性。

为什么突然谈起JS的单线程异步呢?因为定时器事件会被JS异步处理,什么意思?

用代码来说:

仿拍客视频网站源码,单片机用vscode可以开发吗,ubuntu 双击运行,tomcat放视频文件,注册爬虫软件,php引用面向对象教程,广东抖音seo获客系统lzw

var num = 1;setTimeout(function() { num++; console.log(num);}, 1000);console.log(num); //结果并是不(2,1)而是(1,2)

为什么会这样?前面说过了,JS会把定时器事件异步处理,也就是说它并不会等待定时器事件

处理完成后再执行下面的代码,而是直接将定时器事件插入到事件队列当中后,直接执行下面

的代码,当定时器事件执行完成后JS再反过头来执行定时器事件的回调部分代码,这就是异步!

异步可以有效的防止JS线程被堵塞,且会有很高的效率,能够使JS在有限的资源下做更多的事

情,这一点是很了不起的。(node中我们会大量接触关于异步的问题)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。