javaScript的事件处理机制+promise异步任务和定时器的先后执行顺序

前言:

我们都知道javascript是脚本语言,用来操作文档的节点,默认是文档的自上而下顺序执行的,为了避免操作页面节点出现混乱,便在这门语言被设计开发出来时,就被设定为单线程语言,是按文档的书写顺序执行的。

javaScript的事件处理机制

概念:进程与线程;同步与异步任务;宏任务与微任务

一、进程与线程

一个程序只有一个进程,一个进程包含多个线程,单线程和多线程

二、同步与异步任务

同步任务:是指在主线程上排队执行的任务,只有前一个任务执行完毕,才能继续执行下一个任务。按顺序执行,可以看做单线程,javascript脚本语言是单线程,避免页面标签杂乱无序。
异步任务: 执行顺序是不确定的,由触发条件决定,什么时间执行也是不确定的。
异步任务分类

  1. 定时器setTimeout/setInterval是宏任务
  2. ajax的异步请求
  3. Promise的异步处理机制
三、宏任务与微任务

先执行微任务,再执行宏任务。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

案例:控制台输出顺序如下

(1).同步与异步任务,输出顺序
同步与异步任务
在这里插入图片描述

(2).Promise的异步处理机制
概念:Promise属于微任务,定时器setTimeout/setInterval是宏任务。先微任务,后宏任务。
在这里插入图片描述
思考一下:如果给Promise异步处理机制,定时器设置相同的等待执行时间,执行顺序是什么?
在这里插入图片描述
在这里插入图片描述
总结:Promise属于JavaScript引擎内部任务;SetTimeout是浏览器API引擎内部任务的优先级高于浏览器的API

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值