异步和同步

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代码也不会执行,这就是同步。



这篇关于异步和同步的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程