nodejs 中同步和异步

两种方法的区别如下:

  • 同步方法: 等待每个操作完成,然后只执行下一个操作
  • 异步方式: 从不等待每个操作完成,而是只在第一步执行所有操作

nodejs 中同步异步思想

  • 同步: 可以拿吃饭和看电视来举例子,同步就是先吃完饭,吃完饭后再看电视,不能边看边吃,这就是同步
  • 异步: 同样拿上边的例子来说,异步就是边吃饭边看电视,看电视和吃饭同时进行,这样举例就应该很清楚了

同步异步案例

同步代码如下:

var fs = require("fs");
var data = fs.readFileSync('./index.txt');
console.log(data.toString());
console.log("结束!");

同步代码执行结果为:

大家可以看到 同步方法: 等待每个操作完成,然后只执行下一个操作

异步代码如下:

var fs = require("fs");
fs.readFile('index.txt', function (err, data) {if (err) return console.error(err);console.log(data.toString());
});console.log("结束!");

异步代码执行结果为:

异步方式: 从不等待每个操作完成,而是只在第一步执行所有操作

一个简单的小案例了

解决异步问题方法大致包括:回调函数、Promise、pub/sub模式(事件模式)、异步库控制库(例如async、when)、Generator等…

nodejs 同步和异步相关推荐

  1. NodeJs同步、异步加载

    同步 var fs = require("fs");var data = fs.readFileSync('input.txt');console.log(data.toStrin ...

  2. 深入理解nodejs中的异步编程

    文章目录 简介 同步异步和阻塞非阻塞 javascript中的回调 回调函数的错误处理 回调地狱 ES6中的Promise 什么是Promise Promise的特点 Promise的优点 Promi ...

  3. 同步与异步,回调与协程

    目录 概念上下文: 同步的方式: 异步加回调的方式: 异步协程方式: 总结: 这里分享一个 协程原理到实现,全局分析丨协程的切换与调度视频点击查看:「链接」 正文 本文主要介绍在网络请求中的同步与异步 ...

  4. 同步与异步,阻塞与非阻塞的区别

    1.概念剖析 相信很多从事linux后台开发工作的都接触过同步&异步.阻塞&非阻塞这样的概念,也相信都曾经产生过误解,比如认为同步就是阻塞.异步就是非阻塞,下面我们先剖析下这几个概念分 ...

  5. 同步、异步、堵塞、非堵塞和函数调用及I/O之间的组合概念

    在我们工作和学习中,经常会接触到"同步"."异步"."堵塞"和"非堵塞"这些概念,但是并不是每个人都能将它们的关系和区别 ...

  6. setstate是同步还是异步_【vert.x准备篇1】同步和异步,阻塞和非阻塞概念澄清

    为了能更好的理解vert.x的线程模型,我们必须要先明确几个概念:同步(Synchronous)和异步(Asynchronous),阻塞(Blocking)和非阻塞(Non-Blocking).关于这 ...

  7. 同步等待 异步等待_异步/等待和承诺的解释

    同步等待 异步等待 The async / await operators make it easier to implement many async Promises. They also all ...

  8. boot定时任务开启和关闭 spring_SpringBoot中的定时任务的同步与异步你确定真的知道?...

    定时任务调度功能在我们的开发中是非常常见的,随便举几个例子:定时清除一些过期的数据,定时发送邮件等等,实现定时任务调度的方式也十分多样,本篇文章主要学习各种实现定时任务调度方式的优缺点,以便为日后选择 ...

  9. 这次,让我们捋清:同步、异步、阻塞、非阻塞

    继上一篇说透I/O模型后,我们来谈谈网络 I/O 经常会伴随的几个容易令人混淆的概念:同步.异步.阻塞.非阻塞的区别. 这篇写完之后铺垫就差不多了,之后就正式开始 Netty 深度剖析了,敬请期待,嘻 ...

最新文章

  1. apple id无法创建_我如何为我的Apple收藏夹创建网站
  2. (7)Zabbix分布式监控proxy实现
  3. python HDF5 h5py 的用法
  4. 【原】东拼西凑PBR(1):PBR基础
  5. 14个顶级开发社区 [程序员]
  6. 编译安装LNMP Centos 6.5 x64(6.6 x64) + Nginx1.6.0 + PHP5.5.13 + Mysql5.6.19
  7. ajax 传递数组与接收
  8. python paramiko_python中的paramiko模块
  9. YOLOv1 《You Only Look Once》论文笔记
  10. 银行业务软件测试,银行业务软件系统测试研究
  11. 深入理解Java虚拟机——JVM类加载机制(类加载过程和类加载器)
  12. java api 开发_Java开发人员应该知道的前20个库和API
  13. 如何用vc6编译ffmpeg, 并单步调试。
  14. php反序列化绕过,浅谈php反序列化漏洞
  15. [oracle] Instant Client 即时客户端
  16. 注入技术--LSP劫持注入
  17. Unity3D 太空射击游戏学习笔记
  18. 目标检测数据集PASCAL VOC详解
  19. Linux【网络库】| 【02 <netdb.h>】以及网络常用结构体
  20. PS调出怀旧雨中特写的非主流照片

热门文章

  1. 华为平板连接linux服务器,大疆造了台android平板_连华为平板都连不上大疆
  2. php mail方法_php邮件发送的两种方式
  3. 如何收割淘宝逛逛人群
  4. 数学建模学习(102):成分数据分析之中心对数比转换【已修改】
  5. Lane_GCN翻译
  6. html唤醒手机app,怎么在html5中唤醒APP
  7. 凭什么 Python 是办公自动化的王者?学会了Python还需要996吗?
  8. 4000多页合集的计算机、网络、算法知识总结,五面拿下阿里飞猪offer
  9. java jdk安装在_java JDK安装
  10. 人工智能治疗儿童感冒表现优异;苹果称替APP背了大数据杀熟的锅