node 同步和异步的概念

我们学习node的文件系统模块fs时node给我们提供了两种方式操作文件:同步和异步 今天重点讲解下异步操作,node中的异步编程思想 首先我们通过一个简单的案例来了解一下异步

<script>
console.log("111111");

setTimeout(()=> {
    console.log("222222");
}, 400)

console.log("333333");

setTimeout(()=> {
    console.log("444444");
},300)

console.log("555555");
</script>

//思考一下 当我们运行上面的代码,log打印的顺序是什么?

按照我们平时写代码的经验是代码从上往下依次按照顺序执行:

111111

222222

333333

444444

555555

但我们实际运行的结果是

 

 为什么会造成这样的情况呢?我们先卖个关子!先来说下同步的概念

Js是在设计之出就是为了解决页面交互,操作DOM的能力,js是单线程的,因为一次只能执行一段代码 所以默认执行顺序就是同步的。但因为多核cpu让js有了异步的模式

同步的优点是:顺序执行,不会出现第二段代码还未执行第三段就执行的情况

同步的缺点是:阻塞 当执行的代码段时间太长 后续的代码只能等待上段代码执行完 就会造成卡死的状态 这对用户相当不友好,用户体验很差。

 

所以当请求时间比较长的程序,就用异步来解决如:网络请求 文件IO 等..

异步的优点:非阻塞 接收到任务先传到后台 再去接收其它任务 然后按照执行速度执行 谁执行快就先执行谁

异步的缺点:会出现第二段每执行 第三段就执行了 会导致错误

 

所以回到上面那个例子就是,谁执行快就先执行谁的

posted @ 2021-03-07 11:59  珊迪·奇克斯  阅读(446)  评论(0编辑  收藏  举报