event loop笔记(一)

event loop笔记(一)

button.addEventListener('click',() => {
	Promise.resolve().then(() => {console.log('Microtask 1')})
	console.log('Listener 1')
})
button.addEventListener('click',() => {
	Promise.resolve().then(() => {console.log('Microtask 2')})
	console.log('Listener 2')
})

用法一

用户点击事件——输出为:Listener 1, Microtask 1, Listener 2, Microtask 2

过程如下:
①第一个listener压入stack
②将微任务1排队
③log(‘Listener 1’)
④listener执行完,stack清空
⑤微任务1被送入stack
⑥log(‘Microtask 1’)
⑦stack和微任务队列被清空
⑧第二个listener被压入stack,重复以上


用法二

button.click()——输出为:Listener 1, Listener 2, Microtask 1, Microtask 2

①第一个listener压入stack
②将微任务1排队
③log(‘Listener 1’)
④click()还没返回,导致stack中仍保留第一个listener
⑤第二个listener被压入stack
⑥将微任务2排队
⑦log(‘Listener 2’)
⑧所有listener执行完毕,click()返回,stack被清空
⑨微任务队列按顺序(先进先出)将各微任务送入stack
⑩log(‘Microtask 1’),log(‘Microtask 2’)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值