云社区 博客 博客详情

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

鑫2020 发表于 2021-03-23 11:51:27 2021-03-23
0
0

【摘要】 大家好,我是陈泽鑫,今天分享下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


登录后可下载附件,请登录或者注册

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请发送邮件至:huaweicloud.bbs@huawei.com;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
评论文章 //点赞 收藏 0
点赞
分享文章到微博
分享文章到朋友圈

上一篇:前端开发之Promise.all与Promise.race的区别

下一篇:前端开发之Promise(all与race的使用)

评论 (0)


登录后可评论,请 登录注册

评论