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

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

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

javaScript的事件处理机制
概念:进程与线程;同步与异步任务;宏任务与微任务
一、进程与线程
一个程序只有一个进程,一个进程包含多个线程,单线程和多线程

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

定时器setTimeout/setInterval是宏任务
ajax的异步请求
Promise的异步处理机制
三、宏任务与微任务
先执行微任务,再执行宏任务。

案例:控制台输出顺序如下
(1).同步与异步任务,输出顺序

(2).Promise的异步处理机制
概念:Promise属于微任务,定时器setTimeout/setInterval是宏任务。先微任务,后宏任务。

思考一下:如果给Promise异步处理机制,定时器设置相同的等待执行时间,执行顺序是什么?

总结:Promise属于JavaScript引擎内部任务;SetTimeout是浏览器API;引擎内部任务的优先级高于浏览器的API

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值