首页 > 其他分享 >JS执行队列

JS执行队列

时间:2022-09-25 10:35:05浏览次数:48  
标签:异步 同步 队列 JS 任务 执行

JS执行队列

同步和异步

  • 同步
前一个任务结束后再执行后一个任务,程序的执行顺序与任务的排列顺序是一致的、 同步的。比如做饭的同步做法:我们要烧水煮饭,等水开了( 10分钟之后) , 再去切菜,炒菜。
  • 异步
你在做一件事情时,因为这件事情会花费很长时间,在做这件事的同时,你还可以去处理其他事情。比如做饭的异步做法,我们在烧水的同时,利用这10分钟,去切菜,炒菜。

两者本质区别:这条流水线上各个流程的执行顺序不同。

同步任务和异步任务

  • 同步任务
同步任务都在主线程上执行,形成一个执行栈。
  • 异步任务
JS的异步是通过回调函数实现的。
一般而言,异步任务有以下三种类型:
1、普通事件,如click. resize等
2、资源加载,如load、error等
3、定时器,包括setInterval、 setTimeout 等
异步任务相关回调函数添加到任务队列中(任务队列也称为消息队列)。

JS执行机制

1.先执行执行栈中的同步任务。
2.异步任务(回调函数)放入任务队列中。
3.一旦执行栈中的所有同步任务执行完毕,系统就会按次序读取任务队列中的异步任务,于是被读取的异步任务结束等待状态,进入执行栈,开始执行。

由于主线程不断地重复获得任务、执行任务、再获取任务、再执行,所以这种机制被称为事件循环(event loop)

标签:异步,同步,队列,JS,任务,执行
From: https://www.cnblogs.com/chichi0002/p/16727346.html

相关文章

  • NodeJS的安装
    前言虽然这些东西很基本也很简单,但是过段时间就会遗忘,有空记录下吧,反正也不耗费多少时间,后期至少比百度快点。安装步骤Linux下的安装下载安装包下载地址:http://nodejs......
  • 特殊SQL的执行
    1、模糊查询/***测试模糊查询*@parammohu*@return*/List<User>testMohu(@Param("mohu")Stringmohu);<!--List<User>testMohu(@Param("mohu")Stringmoh......
  • centos 安装 nodejs
    二进制安装1.下载解压1wgethttps://cdn.npm.taobao.org/dist/node/v12.16.2/node-v12.16.2-linux-x64.tar.xz2tar-xfnode-v12.16.2-linux-x64.tar.xz3mvnode-......
  • centos 安装 nodejs
    二进制安装1.下载解压wgethttps://cdn.npm.taobao.org/dist/node/v12.16.2/node-v12.16.2-linux-x64.tar.xztar-xfnode-v12.16.2-linux-x64.tar.xzmvnode-v12.16.2-li......
  • JS 高阶函数
    高阶函数:英文叫Higher-orderfunction。JavaScript的函数其实都指向某个变量。既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种......
  • Nodejs 安装
    目录Nodejs安装Node.js是什么?1.官网2.下载地址3.参考文档4.安装步骤4.1Ubuntu环境4.1.1移除旧版本PPA4.1.2添加NodeSourcepackagesigningkey4.1.3添加期望......
  • 尚品汇后台管理项目:vue-router.esm.js?8c4f:16 [vue-router] Duplicate named routes
     问题描述:切换路由时控制台不断弹出警告  vue-router.esm.js?8c4f:16[vue-router]Duplicatenamedroutesdefinition    解决方案参考:vue动态添加路由,跳转页......
  • js标签栏(tab栏)切换
    html:<divclass="tabscol-md-6"><ulid="nav"><liclass="nav_item"><ahref="javascript:;"class=......
  • js获取指定字符前后面字符串
    //  声明一个字符串   varstr='ABC&abc&123'; //  使用split方法在指定字符(&)处分割,并返回一个数组   varstrArr=str.split('&');我们看控制......
  • 常见的js问题 this指向问题,箭头函数和回调函数 跨域问题 节流和防抖 虚拟DOM
    1.对this指向的理解  2.箭头函数回调函数和rgba的使用 3.常见的跨域方式 4.虚拟DOM 5.函数的节流和防抖 ......