当前位置: 首页 > news >正文

ndoe.js回掉函数

Node.js 异步编程的直接体现就是回调。
异步编程依托于回调来实现
我们可以一边读取文件,一边执行其他命令,在文件读取完成后,我们将文件内容作为回调函数的参数返回。这样在执行代码时就没有阻塞或等待文件 I/O 操作。这就大大提高了 Node.js 的性能,可以处理大量的并发请求。
i/o操作读写操作
创建一个text文件
 
阻塞例子:

 

创建一个执行文件:hello.js
var fs = require("fs");
var data = fs. readFileSync('hello.txt')
console.log(data.toString())
console.log("程序结束")
执行node hello.js
输出://
$ node hello.js
 
 
非阻塞的例子:
var fs = require("fs")
fs.readFile('hello.txt',function(err, data){
if(err){
return console.log.error(error);
}
console.log(data.toString())
})
console.log("程序结束")
输出://
$ node hello.js
 
以上两个实例我们了解了阻塞与非阻塞调用的不同。第一个实例在文件读取完后才执行完程序。 第二个实例我们不需要等待文件读取完,这样就可以在读取文件时同时执行接下来的代码,大大提高了程序的性能。
因此, 阻塞是按顺序执行的,而非阻塞是不需要按顺序的。

转载于:https://www.cnblogs.com/lm-it/articles/6934489.html

相关文章:

  • Nodejs
  • 第一天 开始Linux 征途了
  • 百度网页分享js代码
  • 基于Go的websocket消息服务
  • [52PJ] Java面向对象笔记(转自52 1510988116)
  • 团队项目第二阶段个人进展——Day6
  • 转载:[译] 内容加速黑科技趣谈
  • Hbase中checkAndPut操作
  • Cognos11第三方权限认证之OpenDJ
  • Django级联删除的选项
  • QQ浏览器x5内核的兼容性问题
  • 部分保守派呼吁抵制 Mozilla
  • Java(第十一章 )
  • linux经常使用命令
  • 基于maven+dubbo+spring+zookeeper的简单项目搭建
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • Java 多线程编程之:notify 和 wait 用法
  • Promise初体验
  • socket.io+express实现聊天室的思考(三)
  • ubuntu 下nginx安装 并支持https协议
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 区块链技术特点之去中心化特性
  • 深入浏览器事件循环的本质
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • (1)Nginx简介和安装教程
  • (poj1.2.1)1970(筛选法模拟)
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (区间dp) (经典例题) 石子合并
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (实战篇)如何缓存数据
  • (转)EXC_BREAKPOINT僵尸错误
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .java 9 找不到符号_java找不到符号
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET Core 中插件式开发实现
  • .NET简谈设计模式之(单件模式)
  • .NET中winform传递参数至Url并获得返回值或文件
  • .stream().map与.stream().flatMap的使用
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • @FeignClient注解,fallback和fallbackFactory
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • [APIO2012] 派遣 dispatching
  • [NCTF 2022] web题解
  • [Node.js]连接mongodb
  • [pluginviteimport-analysis] vite 提示jsx语法报错
  • [Python人工智能] 四十二.命名实体识别 (3)基于Bert+BiLSTM-CRF的中文实体识别万字详解(异常解决中)
  • [PyTorch][chapter 60][强化学习-2-有模型学习2]
  • [pytorch入门] 2. tensorboard
  • [Qualcomm][GPIO]高通芯片引脚相关知识记录
  • [Redis]基础入门
  • [本地跑项目总是要权限校验输密码]Error: EACCES: permission denied
  • [笔记] BAD PASSWORD ,linux 修改密码历程