美文网首页
任务队列异步函数节流

任务队列异步函数节流

作者: 小7丁 | 来源:发表于2018-07-30 23:36 被阅读30次

一、实现一个节流函数。

var timer
function hi() {
    if(timer) {
        clearTimeout(timer)
    }
    timer = setTimeout(function() {
        console.log(1)
    },1000)
}
hi()
hi()
hi()

二、简单解释单线程、任务队列的概念。

单线程模型指的是,JavaScript 只在一个线程上运行。也就是说,JavaScript 同时只能执行一个任务,其他任务都必须在后面排队等待。这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。

任务队列就是除了正在执行的主线程,还存了一些需要当前处理的异步任务。
当主线程的同步任务全部执行完之后,才会去看在任务队列内的异步任务。若满足条件,异步任务就会进入主线程开始执行,并变成了同步任务。重复上述步骤,到任务队列都清空了,程序就结束执行。

相关文章

网友评论

      本文标题:任务队列异步函数节流

      本文链接:https://www.haomeiwen.com/subject/renqvftx.html