setTimeout()方法总结
setTimeout
setTimeout 简介
setTimeout是浏览器的js处理引擎或者是nodJs内核帮我们实现的一个方法,它的作用是提供一种定时执行的机制,让使用者可以实现在一个特定的时间后执行一段程序的目的。该函数看起来很简单,使用也很简单,但是它的实现及原理并不简单。
setTimeout 用法
我们可以通过setTimeout实现许多意想不到的功能,比如Promise的实现也依赖setTimeout。大多数情况下我们不必去考虑过多的细节,那么setTimeout的使用就比较简单了
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8">
</head><body><script>setTimeout("alert('来啦 老弟!')", 3000);</script></body>
</html>
setTimeout 原理
setTimeout运行机制是:当程序执行到setTimeout函数时,处理器会将代码移出本次执行程序,等到下一次Event Loop时,再检查是否到了指定的时间。如果到了就执行对应的代码。如果不到, 就等到下一轮Event Loop时重新判断。这意味着,setTimeout指定的代码,必须等到本次执行的所有代码都执行完,才会执行。
以下程序和图来源于其他博客
const bar = () => console.log('bar');
const baz = () => console.log('baz');
const foo = () => {console.log('foo');setTimeout(bar, 0);baz();
}
foo();
图中描绘了程序执行时,执行栈中的数据变化,途中红色标出的部分都与任务队列有关,绿色部分表示由于异步程序存在而被打破了原来的顺序。
setTimeout()方法总结相关推荐
- DOM中setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. <html> <head> <script type="text/javascript ...
- setTimeout() 方法的返回值
setTimeout() 方法的返回值 setTimeout() 方法的返回值是一个唯一的数值,这个数值有什么用呢?如果你想要终止 setTimeout() 方法的执行,那就必须使用 clearTim ...
- 深入解析Node.js setTimeout方法的执行过程
深入了解setTimeout源码之前,本有两个选择.一是通过chromium源码分析,二是通过Node.js源码分析.后来发现第一种方案的源码获取成本太大,于是从Node官网获取了几十兆的代码用来了解 ...
- setTimeout()方法
定义和用法 setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. setTimeout(function(){alert("Hello");},5000):// ...
- setTimeout方法
很多时候我们编写代码的时候都需要用到定时器,下面我给大家介绍一个方法,利用它我们也能做定时器.下面给大家介绍这个方法的几种常用的写法. SetTimeout方法 第一种写法↓ setTimeout方法 ...
- setTimeout()方法用法介绍
setTimeout()方法用法介绍 setTimeout setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. 语法 setTimeout(code,millisec) setT ...
- setTimeout()方法的使用
setTimeout()方法的使用 使用方式:该方法用于在指定的毫秒数后调用函数或计算表达式. 例一: function showData(){ setTimeout(() =>{let exp ...
- 利用setTimeout方法控制JS中方法的执行顺序
JS方面中有A和B方法,B必须在A执行完之后才能执行,怎么保证呢? 1.首先设一个标志(isAFinish),用来标识A是否执行完. 2.B方法执行的时候,判断 var isAFinish=false ...
- Window.clearTimeout() 方法取消由 setTimeout() 方法设置的 timeout
clearTimeout()方法的参数必须是由setTimeout()返回的ID值.例子: <!DOCTYPE html> <html> <head> <me ...
最新文章
- 显示一个屏幕,隐藏其他屏幕
- Codeforces Round #401 (Div. 1) C(set+树状数组)
- XML配置里的Bean自动装配与Bean之间的关系
- 文本挖掘(part1)--文本挖掘概述
- 【IT界的厨子】酱香鲈鱼
- 嘉益仕(Litns)带您读懂MES系统:选型篇
- 睡眠音频分割及识别问题(五)--YAMNet进一步分析
- 怎样防止程序重复开启?
- linux--vi的使用
- 以下系统组件依赖此服务器,Maven中配置本地依赖组件包
- Web Developer——瑞士军刀一样的FF插件
- tcl如何获取键盘输入
- 7-7 评分规则 (5 分)
- WCF REST(9篇)
- 二阶振荡环节的谐振频率_什么是谐振器?谐振器与振荡器有什么区别?
- 理解SNS系列之二:更进一步,近观SNS
- ps软件打不开计算机受限制,win10系统打不开ps软件的处理技巧
- 机械制图之工程图线型
- redis+mc review
- 千锋重庆Java基础之Java拼图游戏的代码