Node.js以及异步编程

什么是服务器?我们知道客户端通过访问服务器,然后服务器去操作数据库把我们想要的数据拿过来给客户端。比如服务器就是餐厅的服务员,数据库就是厨房,客户端就是我们的顾客。首先我们点菜,服务器告诉厨师做饭,然后把饭给我们。这样我们就大致知道了服务器是做什么的。就是一个线程的容器为我们提供服务。

Node.js是运行在服务器的js用来编写服务器。

这里是java编写服务器和nodejs的不同,nodejs的特点1.单线程2.异步3.非阻塞4.统一API .

I/O指的是input ouput 输入输出不会被阻塞,就是并行服务员一直接新订单。统一API是前后端都用js写。都遵循ECMAScript语法(流程控制语句 函数对象运算符一致)也保留了部分console.log调试语句。

1.Nvm 的安装以及命令

nvm是一个管理Node.js多版本的工具可以轻松切换不同项目所需的Node.js版本避免全局冲突。

这里一些简单的命令

2.怎么用node

1.直接在终端输入node

就可以直接写js代码了

2.在根目录下用node 文件名

或者用快捷键 fn+f5(mac) 这样就可以调试我们写的node.js代码了。

3.异步编程

首先理解同步和异步直接先插入一个概念,进程和线程。

进程:程序运行的环境(工厂的厂房计算机内存给代码留的内存空间)

线程(工人)线程是实际进行运算的东西在进程里面运算。

同步和异步

通常情况下我们的代码是一行行执行如果前面代码不执行后面的代码也不会执行。如果同步的代码出现阻塞的情况,一行代码慢会影响整个程序的运行。

为了解决同步的问题。node.js通过异步方式来解决。执行代码速度慢的代码不会影响其他代码。

比如这种代码,我们后面的输出都需要等sum函数执行完三秒后才可以运行。我们如果用异步去解决的话。

我们发现一个问题异步好像就拿不到result返回值了 ,因为我们同步输出了result这时候没有拿到result这就很难受了,我们怎么才能拿到值呢?我们可以用回调函数来解决。

我们这里用回调函数然后作为参数来获取我们a+b的值然后输出,如果我们希望加好几次呢?就需要去在回调函数里面拿到result之后再去拿当前的result作为参数再次调用sum函数。

就会出现这样代码的可读性差,可调试性差也是我们说的回调地狱。

现在我们知道我们用异步解决了所谓的同步代码会因为一行代码影响程序执行,但是异步的话我们就无法通过return设置返回值。虽然不会阻塞代码,但是需要回调函数的参数来返回结果。形成回调地狱。

为了解决这个问题,Promise横空出世 Promise用来存储异步调用的数据

相关推荐
Bruce12311 小时前
openclaw学习日常(一)openclaw在WSL中搭建
人工智能·node.js
Hommy8814 小时前
【开源剪映小助手-客户端】桌面客户端
python·开源·node.js·github·剪映小助手
走粥16 小时前
node.js 中的 express 框架 - 基础到进阶
node.js·express
qq_2290580118 小时前
使用nvm安装node12 以及对应的NPM6.14.16
node.js
zhensherlock18 小时前
Protocol Launcher 系列:Mail Assistant 轻松发送 HTML 邮件
前端·javascript·typescript·node.js·html·github·js
旺王雪饼 www20 小时前
《Express框架深度解析:从基础入门到高级实践与项目架构》
前端·node.js·express
星光不问赶路人2 天前
Node.js 如何判断入口文件:从 require.main 到 ES Module 实现
前端·node.js
网络点点滴2 天前
Node.js 中阻塞、非阻塞及异步特性
node.js
netkiller-BG7NYT2 天前
yoloutils - Openclaw Agent Skill
前端·webpack·node.js