随笔分类 -  执行机制

摘要:一般有两种做法 1.时间分片 setTimeout是宏任务,先执行完所有的微任务,才会触发渲染线程对页面进行渲染, 而setTimeout的触发时间是渲染完成,在下一次eventloop中执行的。 根据以上两次log,js运算并不是性能的瓶颈,瓶颈主要在渲染阶段。 怎么办呢? 使用定时器,在这里,我 阅读全文
posted @ 2023-03-04 20:49 不想做混子的奋斗远 阅读(48) 评论(0) 推荐(0)
摘要:任务队列个数不同 浏览器事件环有2个事件队列 宏任务队列 微任务队列 NodeJS事件环有6个事件队列 定时器(timers):本阶段执行已经被 setTimeout() 和 setInterval() 的回调函数 待定回调(pending callbacks):执行延迟到下一个循环迭代的 I/O 阅读全文
posted @ 2023-03-04 20:30 不想做混子的奋斗远 阅读(29) 评论(0) 推荐(0)
摘要:实现promise的核心思想是借助reduce 第一步 const res = [] //定义一个接受不同promise执行结果的数组 第二步 返回一个promise对象 return new Promise((resolve,reject) => { }) 第三步 通过reduce讲不同的prom 阅读全文
posted @ 2023-03-04 20:14 不想做混子的奋斗远 阅读(191) 评论(0) 推荐(0)
摘要:1.什么是promise Promise是异步编程的一种解决方案:从语法上来讲,promise是一个对象,从他可以获取异步操作的消息;从本意上来讲。他是一个承诺,承诺他过一段时间会给你一个结果。 他有三种状态:pending(等待态)、fulfiled(成功态)、rejected(失败态);状态一旦 阅读全文
posted @ 2023-03-04 20:04 不想做混子的奋斗远 阅读(11) 评论(0) 推荐(0)
摘要:js宏任务有:<script>整体代码、setTimeout、setInterval、setImmediate、Ajax、DOM事件 js微任务有:process.nextTick、MutationObserver、Promise.then catch finally 执行顺序 执行顺序:先执行同步 阅读全文
posted @ 2023-03-04 18:08 不想做混子的奋斗远 阅读(82) 评论(0) 推荐(0)
摘要:单线程和异步 js的任务分为同步和异步两种,它们的处理方式也不同, 同步任务是直接在主线程上排队执行,异步任务则会被放在任务队列中, 若有多个任务(异步任务)则要在任务队列中排队等待,任务队列类似一个缓冲区,任务下一步会被移到调用栈(callstack),然后主线程执行调用栈的任务。 JavaScr 阅读全文
posted @ 2023-03-04 17:56 不想做混子的奋斗远 阅读(43) 评论(0) 推荐(1)
摘要:涉及到了一种数据类型:Completion,是js七大标准类型之一 为何try里面放return,finally还会执行 这种行为就是因为Completion Record,在js中,每条语句的执行完成状态都是由Completion Record类型表示的。他有三个字段: [[type]]:表示完成 阅读全文
posted @ 2023-03-04 17:11 不想做混子的奋斗远 阅读(164) 评论(0) 推荐(1)