We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
process 对象是一个全局变量,提供了有关当前 Node.js 进程的信息并对其进行控制,作为一个全局变量
process
Node.js
我们都知道,进程计算机系统进行资源分配和调度的基本单位,是操作系统结构的基础,是线程的容器
当我们启动一个js文件,实际就是开启了一个服务进程,每个进程都拥有自己的独立空间地址、数据栈,像另一个进程无法访问当前进程的变量、数据结构,只有数据通信后,进程之间才可以数据共享
js
由于JavaScript是一个单线程语言,所以通过node xxx启动一个文件后,只有一条主线程
JavaScript
node xxx
关于process常见的属性有如下:
EventLoop
下面再稍微介绍下某些方法的使用:
返回当前 Node 进程执行的目录
Node
一个 Node 模块 A 通过 NPM 发布,项目 B 中使用了模块 A。在 A 中需要操作 B 项目下的文件时,就可以用 process.cwd() 来获取 B 项目的路径
A
B
process.cwd()
在终端通过 Node 执行命令的时候,通过 process.argv 可以获取传入的命令行参数,返回值是一个数组:
process.argv
所以,我们只要从 process.argv[2] 开始获取就好了
process.argv[2]
const args = process.argv.slice(2);
返回一个对象,存储当前环境相关的所有信息,一般很少直接用到。
一般我们会在 process.env 上挂载一些变量标识当前的环境。比如最常见的用 process.env.NODE_ENV 区分 development 和 production
process.env
process.env.NODE_ENV
development
production
在 vue-cli 的源码中也经常会看到 process.env.VUE_CLI_DEBUG 标识当前是不是 DEBUG 模式
vue-cli
process.env.VUE_CLI_DEBUG
DEBUG
我们知道NodeJs是基于事件轮询,在这个过程中,同一时间只会处理一件事情
NodeJs
在这种处理模式下,process.nextTick()就是定义出一个动作,并且让这个动作在下一个事件轮询的时间点上执行
process.nextTick()
例如下面例子将一个foo函数在下一个时间点调用
foo
function foo() { console.error('foo'); } process.nextTick(foo); console.error('bar');
输出结果为bar、foo
bar
虽然下述方式也能实现同样效果:
setTimeout(foo, 0); console.log('bar');
两者区别在于:
The text was updated successfully, but these errors were encountered:
No branches or pull requests
一、是什么
process
对象是一个全局变量,提供了有关当前Node.js
进程的信息并对其进行控制,作为一个全局变量我们都知道,进程计算机系统进行资源分配和调度的基本单位,是操作系统结构的基础,是线程的容器
当我们启动一个
js
文件,实际就是开启了一个服务进程,每个进程都拥有自己的独立空间地址、数据栈,像另一个进程无法访问当前进程的变量、数据结构,只有数据通信后,进程之间才可以数据共享由于
JavaScript
是一个单线程语言,所以通过node xxx
启动一个文件后,只有一条主线程二、属性与方法
关于
process
常见的属性有如下:EventLoop
时经常为会提到下面再稍微介绍下某些方法的使用:
process.cwd()
返回当前
Node
进程执行的目录一个
Node
模块A
通过 NPM 发布,项目B
中使用了模块A
。在A
中需要操作B
项目下的文件时,就可以用process.cwd()
来获取B
项目的路径process.argv
在终端通过 Node 执行命令的时候,通过
process.argv
可以获取传入的命令行参数,返回值是一个数组:所以,我们只要从
process.argv[2]
开始获取就好了process.env
返回一个对象,存储当前环境相关的所有信息,一般很少直接用到。
一般我们会在
process.env
上挂载一些变量标识当前的环境。比如最常见的用process.env.NODE_ENV
区分development
和production
在
vue-cli
的源码中也经常会看到process.env.VUE_CLI_DEBUG
标识当前是不是DEBUG
模式process.nextTick()
我们知道
NodeJs
是基于事件轮询,在这个过程中,同一时间只会处理一件事情在这种处理模式下,
process.nextTick()
就是定义出一个动作,并且让这个动作在下一个事件轮询的时间点上执行例如下面例子将一个
foo
函数在下一个时间点调用输出结果为
bar
、foo
虽然下述方式也能实现同样效果:
两者区别在于:
参考文献
The text was updated successfully, but these errors were encountered: