异步和同步
2022/5/11 23:17:24
本文主要是介绍异步和同步,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息,这时程序是出于阻塞的,只有接收到返回的值或消息后才往下执行其他的命令。
异步,执行完函数或方法后,不必阻塞性地等待返回值或消息,只需要向系统委托一个异步过程,那么当系统接收到返回值或消息时,系统会自动触发委托的异步过程,从而完成一个完整的流程。
异步代码展示://异步 console.log(100) setTimeout(() => { console.log(200) },1000) console.log(300)
效果就是,先打印100,遇到setTimeOut就先记下,1秒钟后再执行,先不管它,到时候执行再说,程序会立马向下执行,立马等于300,打印了300之后,整个的程序执行完成,然后发现异步任务中还有一个任务,就是一个函数
() => { console.log(200) },1000)
一秒钟之后执行,那一秒钟之后就执行刚才说的打印这个200,所以说异步是通过callback的形式去调用的。callback就是回调,就是说回调函数,这个就是回调函数。
也就是说,每个异步都需要加个回调函数,回调函数的意思就是说:我们先去执行同步任务(不是异步的任务),执行完之后,到一个时间,比如上面是触发时间1秒,我们再去执行回调函数,这就是异步。它不会阻塞后面代码的执行
同步代码展示:
//同步 console.log(100) alert(200) console.log(300)
它的效果就是先打印100,然后出提示框200,点击后,再打印300。
同步:在alert(200)的时候,它就卡住了,也就是像我们刚才描述的那样,如果是同步的话,它会在运行的过程中卡住,后面的程序不会执行,浏览器也不会渲染,然后js代码也不会执行,这就是同步。
这篇关于异步和同步的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-01为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署