前端开发之javascript异步任务(宏任务与微任务)

鑫2020 发表于 2021/03/23 11:51:27 2021/03/23
【摘要】 大家好,我是陈泽鑫,今天分享下javascript异步任务的总结。javascript异步任务异步任务包含两种:宏任务和微任务。宏任务:DOM事件回调、AJAX事件回调、定时器回调微任务:Promise、MutationObserver、(node环境中还包括process.nextTick)js运行程序代码是同步的,但执行完所有同步代码后就执行异步代码;异步代码中每次执行宏任务代码前都先执...

大家好,我是陈泽鑫,今天分享下javascript异步任务的总结。

javascript异步任务

异步任务包含两种:宏任务和微任务。

宏任务:DOM事件回调、AJAX事件回调、定时器回调

微任务:Promise、MutationObserver、(node环境中还包括process.nextTick)

js运行程序代码是同步的,但执行完所有同步代码后就执行异步代码;异步代码中每次执行宏任务代码前都先执行完微任务的代码后再执行。

异步任务执行顺序:微任务→宏任务→微任务→宏任务……

<script>
	console.log(2021)
	setTimeout(() => {
		console.log(2022)
		Promise.resolve(2023).then(res => {
			console.log(res)
		})
	}, 0)
	Promise.resolve(2024).then(res => {
		console.log(res)
	})
	let xinPromise = new Promise((resolve, reject) => {
		resolve(2025)
		setTimeout(()=>{
			console.log(2026)
		},0)
	})
	xinPromise.then(res => {
		console.log(res)
	})
	console.log(2027)
</script>

备注:promise有三种状态:

pending(初始状态)、fulfilled(已兑现)、rejected(已拒绝)

参考连接:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请发送邮件至:cloudbbs@huaweicloud.com;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。