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

理论-同步、异步、阻塞、非阻塞

页面js(阻塞(等待文件读取函数执行完成)和非阻塞(不等待文件读取函数执行完成));文件读取(同步(不会立即返回,需等待读取操作完成才返回)和异步(会立即返回并在文件读取完成后执行回调函数));

在异步非阻塞的情况下,可以使用 Node.js 中的文件读取操作来展示。在 Node.js 中,可以使用回调函数或者 Promise 来实现异步非阻塞的文件读取操作。以下是使用回调函数的例子:

const fs = require('fs');

// 异步非阻塞的文件读取操作,使用回调函数
fs.readFile('file.txt', 'utf8', (err, data) => {
  if (err) throw err;
  console.log(data);
});
console.log('异步非阻塞文件读取操作完成');

在这个例子中,fs.readFile 是一个异步非阻塞的文件读取操作。在调用 fs.readFile 后,JavaScript 代码会继续执行后续的操作,而不必等待文件读取完成。当文件读取完成后,回调函数会被调用并处理文件数据。这种方式下,文件读取的操作是异步的,不会阻塞后续代码的执行。

另外,使用 Promise 也可以实现异步非阻塞的文件读取操作,下面是一个使用 Promise 的例子:

const fs = require('fs').promises;

// 异步非阻塞的文件读取操作,使用 Promise
fs.readFile('file.txt', 'utf8')
  .then(data => {
    console.log(data);
  })
  .catch(err => {
    console.error(err);
  });
console.log('异步非阻塞文件读取操作完成');

在这个例子中,fs.promises.readFile 返回一个 Promise 对象,使得文件读取操作变为异步非阻塞的。当文件读取完成后,Promise 的 then 方法会被调用来处理文件数据,而不会阻塞后续代码的执行。

这些例子展示了异步非阻塞的情况:文件读取操作是异步的,并且在读取文件的同时不会阻塞后续代码的执行。


http://www.kler.cn/a/322672.html

相关文章:

  • PyTorch使用教程-深度学习框架
  • 【windows】校园网AP隔离解决方案笔记-解决校内设备之间无法互相通信的臭毛病-附破解程序
  • 【分布式】万字图文解析——深入七大分布式事务解决方案
  • pycharm分支提交操作
  • Ceph PG(归置组)的状态说明
  • 2024年09月CCF-GESP编程能力等级认证Python编程三级真题解析
  • 微信小程序 - 最新详细安装使用 Vant weapp UI 框架环境搭建详细教程
  • 蓝桥杯15届C/C++B组省赛题目
  • Python的包管理工具pip安装
  • 【前端】ES13:ES13新特性
  • 人工智能开发实时语音识别系统应用
  • 试用Debian12.7和Ubuntu24.4小札
  • 计算机网络--HTTP协议
  • 酒店智能门锁SDK接口pro[V10] 对接酒店收银-模块封装C#-SAAS本地化-未来之窗行业应用跨平台架构
  • C++ 类与对象(上)
  • 关于Mysql数据库的日常维护,包括配置、优化、备份、故障处理等工作的50道运维面试题
  • 关于使用/bin/sh -c 用于Dockerfile的Entrypoint的问题
  • 【第十五章:Sentosa_DSML社区版-机器学习之关联规则】
  • 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(十)高翔书中的细节:参考链接;卫星导航;ESKF
  • Redis篇(数据类型)
  • 桥接模式
  • 【区块链快速概览】了解区块链的基本原理、共识机制(如PoW, PoS)、加密技术基础。
  • uWsgi找不到新安装的python模块问题【亲测好用】
  • 通过 Xshell 无法连接到 Ubuntu
  • HarmonyOS鸿蒙开发实战( Beta5.0)Web组件预览PDF文件实现案例
  • 简历信息提取系统源码分享