您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2024/2/23 8:41:23发布27次查看
这篇文章主要介绍了关于js定时器和单线程异步特性,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
首先要说的是,定时器相关的方法都是属于bom方法,而定时器呢,它是用于在设定的时
间执行一段代码,或者在给定的时间间隔内重复该代码。具体函数:
settimeout(callback, delay);//delay一定的时间后,执行回调函数只执行一次setinterval(callback, delay);//每隔一段时间执行一次callback,反复执行clearinterval(timer);//清除定时
定时器确实很好用,但是却又不好用,为什么这么说呢?
我们知道js是单线程的,既然是单线程那么就很容易出现线程被堵塞的情况,怎么解决
呢?——异步!
当然js是单线程的它本身是不能异步的,但js的宿主环境(比如浏览器,node)是多线程
的,宿主环境通过某种方式(比如:node的事件驱动)使得js具备了异步的特性。
为什么突然谈起js的单线程异步呢?因为定时器事件会被js异步处理,什么意思?
用代码来说:
var num = 1;settimeout(function() { num++; console.log(num);}, 1000);console.log(num); //结果并是不(2,1)而是(1,2)
为什么会这样?前面说过了,js会把定时器事件异步处理,也就是说它并不会等待定时器事件
处理完成后再执行下面的代码,而是直接将定时器事件插入到事件队列当中后,直接执行下面
的代码,当定时器事件执行完成后js再反过头来执行定时器事件的回调部分代码,这就是异步!
异步可以有效的防止js线程被堵塞,且会有很高的效率,能够使js在有限的资源下做更多的事
情,这一点是很了不起的。(node中我们会大量接触关于异步的问题)
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注!
相关推荐:
js异步编程之promise、generator、async/await
js异步编程的介绍
以上就是js定时器和单线程异步特性的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product