千家信息网

node同步与异步的区别有哪些

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇"node同步与异步的区别有哪些"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"n
千家信息网最后更新 2025年01月20日node同步与异步的区别有哪些

这篇"node同步与异步的区别有哪些"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"node同步与异步的区别有哪些"文章吧。

node同步与异步的区别是:同步就是程序自上而下的运行,上一步执行完后下一步才能得到执行;而异步是指不用等待上面的运行完后再运行下面的操作,异步编程可以依托于回调来实现,但并不是回调后的程序就是异步了。

本教程操作环境:windows10系统、nodejs 12.19.0版本、Dell G3电脑。

node同步与异步的区别是什么

同步就是程序自上而下运行,而异步就是不用等待上面的运行完后再运行下面的操作。异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了。

同步的英文:sync(synchronization)

异步的英文:async(asynchronous)

同步API:只有当前API执行完成后,才能继续执行下一个API

console.log('before'); console.log('after');

异步API:当前API的执行不会阻塞后续代码的执行

console.log('before');setTimeout(   () => { console.log('last');}, 2000);console.log('after');

同步API, 异步API的区别( 获取返回值 )

同步API可以从返回值中拿到API执行的结果, 但是异步API是不可以的(好像在异步API里面写return也是拿不到结果的?)

// 异步  function getMsg () {       setTimeout(function () {           return { msg: 'Hello Node.js' }      }, 2000);  }  const msg = getMsg (); //函数没有写return 默认是返回 undefinedcnsole.log(msg); // 输出的是 undefined,因为定时器还没执行完就执行了输出

回调函数

自己定义函数让别人去调用。

// getData函数定义 function getData (callback) {}  // getData函数调用 getData (() => {});/*例子------------------*/function getMsg (callback) {    setTimeout(function () {        callback ({ msg: 'Hello Node.js' })    }, 2000);}getMsg (function (msg) {     console.log(msg);});

同步API, 异步API的区别(代码执行顺序)

同步API从上到下依次执行,前面代码会阻塞后面代码的执行

异步API不会等待API执行完成后再向下执行代码

代码执行顺序分析

JavaScript分为同步代码执行区和异步代码执行区,它们之间有回调函数队列连接。首先,JavaScript会执行同步代码区的全部内容,然后再去异步代码区执行代码,查找异步代码区执行完成的代码块,找到就马上去找到这个异步代码块对应的回调函数放到同步代码执行区来执行

Node.js中的异步API

读取文件API,有回调函数。

事件监听的API,也有回调函数。(事件处理函数就是回调函数,事件监听API就是异步API)

如果异步API后面代码的执行依赖当前异步API的执行结果,但实际上后续代码在执行的时候异步API还没有返回结果,这个问题要怎么解决呢?

比如有个需求:依次读取A文件、B文件、C文件(读完A再读B接着读C,不能同时读取)

如果实现上面这个需求就会导致将B读取的操作放到A的回调函数里面,而读取C的操作放到B的回调函数里面,导致嵌套层次很多(回调地狱)

const fs = require('fs');fs.readFile('./1.txt', 'utf8', (err, result1) => {console.log(result1)fs.readFile('./2.txt', 'utf8', (err, result2) => {console.log(result2)fs.readFile('./3.txt', 'utf8', (err, result3) => {console.log(result3)})})});

以上就是关于"node同步与异步的区别有哪些"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

代码 同步 函数 就是 内容 运行 文件 程序 结果 面的 事件 不用 文章 知识 篇文章 自上而下 需求 顺序 英文 监听 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 游戏软件开发代理 linux装软件开发环境 网络技术有限公司能做电商吗 报价模板软件开发 西安新华互联网科技学校 a3纸网络安全手抄报小学 数据库 年龄最大的两名 计算机三级的网络技术 数据库历史这么查询 对于目前的无网络技术来说 明光自动化软件开发技术大概费用 地下城和勇士连接不上服务器 番禺网络安全建设怎么选择 网络安全发现报告和处置流程 网络安全新闻发布会天津召开 php 轻量级数据库框架 浙江超频服务器供应商家 obs服务器和串流密码 网络技术及应用课程标准 米家数据库是什么意思 北京市智鑫顺安网络技术中心 台服dnf数据库密码修改 云赞客网络技术有限公司 南京江苏服务器代理厂家 数据库技术课程设计题目 尚易网络技术部 同程旅行软件开发待遇怎么样 s2500 服务器 武汉众乐商通网络技术怎么样 临沂bim大型数据库
0