V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
zhzbql
V2EX  ›  JavaScript

JavaScript 事件循环, 同是异步任务,为何要划分宏任务与微任务?

  •  
  •   zhzbql · 2019-07-25 10:21:13 +08:00 · 3545 次点击
    这是一个创建于 1943 天前的主题,其中的信息可能已经有所发展或是发生改变。

    rt,望大神解惑

    7 条回复    2019-07-25 11:38:26 +08:00
    whypool
        1
    whypool  
       2019-07-25 10:44:42 +08:00
    啥玩意?
    nwu2Cv8OZ2MZMg39
        2
    nwu2Cv8OZ2MZMg39  
       2019-07-25 10:45:54 +08:00
    因为浏览器就是酱规定的?
    royzxq
        3
    royzxq  
       2019-07-25 11:09:29 +08:00
    因为耗时么? 不太懂 orz
    s0f
        4
    s0f  
       2019-07-25 11:09:58 +08:00
    大概因为两者优先级不同?
    autoxbc
        5
    autoxbc  
       2019-07-25 11:14:09 +08:00
    如果当前宏任务生成的微任务,排到后续所有宏任务的后面,延迟太长是一个问题,等到真正执行时,数据都被污染了
    zy445566
        6
    zy445566  
       2019-07-25 11:16:09 +08:00
    简单来说可以这样理解:
    宏任务就是上级给我们布置的任务跟时间相关,只要按时间完成即可。
    微任务就是上级给我们的线上 BUG 很紧急,要尽快完成。
    但我们宏任务工期已经定好了,所以要在宏任务工期完成后就要立即完成紧急 BUG (运行微任务)。
    otakustay
        7
    otakustay  
       2019-07-25 11:38:26 +08:00
    因为宏任务要等得太久了,大家等不及……毕竟对 JS 来说 16ms 是一条底线
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3643 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 05:03 · PVG 13:03 · LAX 21:03 · JFK 00:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.