node.js 中的process 对象

process 对象是node.js 中一个很重要的对象。

process 即进程,这个对象里面包含了很多与进程相关的方法。

下面这段,是官网 https://nodejs.org/api/process.html 的介绍

The process object is a global that provides information about, and control over, the current Node.js process. As a global, it is always available to Node.js applications without using require(). It can also be explicitly accessed using require():

const process = require('process');

可见,process 对象是一个全局对象,不用写require ,直接使用即可。

下面介绍process 中几种常用的属性与方法。

首先是参数相关: argv, argv0, execArgv, execPath . Node.js 在启动的时候,想看启动脚本相关的参数(经常会通过启动脚本传递一些参数)

下面我们分别打印一下

argv 的话可以把 传入的参数(文件名后面)获取。argv0 的话就是 node,不常用。execArgv 能把文件名前面的参数获取出来。execPath 是执行脚本的地址。

const {argv, argv0, execArgv, execPath } = process;

console.log("argv is ", argv);
console.log("argv0 is ", argv0);
console.log("execArgv is ", execArgv);
console.log("execPath is ", execPath);

接下来是 env 属性。

const { env } = process;

console.log(env);

然后,它会把系统的一些信息打印出来。

接下来是process 的 cwd 方法

console.log(process.cwd());

接下来是 process 的 nextTick 方法

它与Global 的setImmediate 方法很相似。

setImmediate 是一个异步执行的方法,指当前回合的事件循环(Event Loop)结束后,立即执行的一个方法。当前任务执行完后,下一个任务是它。(一般使用它)。

process.nextTick 方法的话,是当前事件队列中正在执行的代码执行完后,就执行它。当前任务队尾下一任务之前。

我们写下,下面的代码。nextTick 会比 setImmediate 先执行。

setImmediate( () => {
	console.log("setImmediate");
}
process.nextTick( () => {
	console.log("nextTick");
})

setImmediate( () => {
	console.log("setImmediate");
});

setTimeout( () => {
	console.log("setTimeout");
},0);

process.nextTick( () => {
	console.log("nextTick");
});

猜你喜欢

转载自blog.csdn.net/purple_lumpy/article/details/89155116