原文:搞懂JS的事件循环(Event Loop)和宏任务/微任务

在之前的一篇文章中简单理了下JS的运行机制,顺着这条线深入就又遇到了几个概念,什么是事件循环,什么又是宏任务 微任务呢,今天用这篇文章梳理一下。 以下是我自己的理解,如有错误,还望不吝赐教。 事件循环与消息队列 首先大家都知道JS是一门单线程的语言,所有的任务都是在一个线程上完成的。而我们知道,有一些像I O,网络请求等等的操作可能会特别耗时,如果程序使用 同步模式 等到任务返回再继续执行,就会使 ...

2021-04-30 16:14 0 1579 推荐指数:

查看详情

js事件循环机制(event loop)之任务/任务

任务任务属于一个队列,主要区别在于它们的执行顺序(任务执行完如果有可执行的任务则执行完任务才会继续执行下一个任务任务:包括整体代码script,,setInterval,setImmediate。 任务:原生Promise(有些实现的promise ...

Thu Nov 14 03:11:00 CST 2019 0 431
JavaScipt 中的事件循环(event loop),以及任务任务的概念

事件循环event loop)之前先要搞清楚几个问题。 1. js为什么是单线程的?   试想一下,如果js不是单线程的,同时有两个方法作用dom,一个删除,一个修改,那么这时候浏览器该听谁的? 2.js为什么需要异步?   如果js不是异步的话 ...

Fri Dec 14 07:05:00 CST 2018 1 1513
任务任务Event-Loop

首先,JavaScript是一个单线程的脚本语言。所以就是说在一行代码执行的过程中,必然不会存在同时执行的另一行代码,就像使用alert()以后进行疯狂console.log,如果没有关闭弹框,控制台 ...

Thu Aug 16 00:53:00 CST 2018 6 18300
任务任务Event Loop

说到任务任务,我们就不得不提 Event LoopJS的本质是单线: 1. 一般来说,非阻塞性的任务采取同步的方式,直接在主线程的执行栈完成。 2. 一般来说,阻塞性的任务都会采用异步来执行,异步的工作一般会交给其他线程完成,然后回调函数会放到事件队列中。 当主线程的任务 ...

Wed Aug 14 08:11:00 CST 2019 1 6270
浏览器中的 Event Loop任务任务

  当我们执行 JS 代码的时候其实就是往执行栈中放入函数,那么遇到异步代码的时候该怎么办?其实当遇到异步的代码时,会被挂起并在需要执行的时候加入到 Task(有多种 Task) 队列中。一旦执行栈为空,Event Loop 就会从 Task 队列中拿出需要执行的代码并放入执行栈中执行,所以本质上 ...

Fri Dec 06 00:33:00 CST 2019 0 403
JS 事件循环怎么处理任务任务

前言 我们知道JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。 ...

Wed Apr 29 03:24:00 CST 2020 0 1273
js 事件循环消息队列和任务任务

事件循环与消息队列 因为js是单线程脚本语言,一般情况下代码是同步执行。也就是说js执行代码是一行一行向下执行的,前面没有执行完成是不会执行后面的代码的。 同步和异步的区别其实就在于需不需要排队的问题 同步:所有任务一视同仁,都得排队,先来后到; 异步 ...

Fri Jul 10 06:47:00 CST 2020 0 1265
事件循环任务任务

JavaScript的执行流,无论是浏览器还是Node.js,都是基于 事件循环 。 理解事件循环能够让我们写出更可靠的高性能代码。 让我们先介绍一下事件循环的原理,然后再来看看实际应用。 事件循环Event Loop事件循环的概念非常简单。它就是一个无止境的循环 ...

Wed Jun 24 04:55:00 CST 2020 0 588
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM