成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試官:說說對 Node 中的 Process 的理解?有哪些常用方法?

開發 前端
process 對象是一個全局變量,提供了有關當前 Node.js進程的信息并對其進行控制,作為一個全局變量

[[403406]]

本文轉載自微信公眾號「JS每日一題」,作者灰灰。轉載本文請聯系JS每日一題公眾號。

一、是什么

process 對象是一個全局變量,提供了有關當前 Node.js進程的信息并對其進行控制,作為一個全局變量

我們都知道,進程計算機系統進行資源分配和調度的基本單位,是操作系統結構的基礎,是線程的容器

當我們啟動一個js文件,實際就是開啟了一個服務進程,每個進程都擁有自己的獨立空間地址、數據棧,像另一個進程無法訪問當前進程的變量、數據結構,只有數據通信后,進程之間才可以數據共享

由于JavaScript是一個單線程語言,所以通過node xxx啟動一個文件后,只有一條主線程

二、屬性與方法

關于process常見的屬性有如下:

  • process.env:環境變量,例如通過 `process.env.NODE_ENV 獲取不同環境項目配置信息
  • process.nextTick:這個在談及 EventLoop 時經常為會提到
  • process.pid:獲取當前進程id
  • process.ppid:當前進程對應的父進程
  • process.cwd():獲取當前進程工作目錄,
  • process.platform:獲取當前進程運行的操作系統平臺
  • process.uptime():當前進程已運行時間,例如:pm2 守護進程的 uptime 值
  • 進程事件:process.on(‘uncaughtException’,cb) 捕獲異常信息、 process.on(‘exit’,cb)進程推出監聽
  • 三個標準流:process.stdout 標準輸出、 process.stdin 標準輸入、 process.stderr 標準錯誤輸出
  • process.title 指定進程名稱,有的時候需要給進程指定一個名稱

下面再稍微介紹下某些方法的使用:

process.cwd()

返回當前 Node進程執行的目錄

一個Node 模塊 A 通過 NPM 發布,項目 B 中使用了模塊 A。在 A 中需要操作 B 項目下的文件時,就可以用 process.cwd() 來獲取 B 項目的路徑

process.argv

在終端通過 Node 執行命令的時候,通過 process.argv 可以獲取傳入的命令行參數,返回值是一個數組:

0: Node 路徑(一般用不到,直接忽略)

1: 被執行的 JS 文件路徑(一般用不到,直接忽略)

2~n: 真實傳入命令的參數

所以,我們只要從 process.argv[2] 開始獲取就好了

  1. const args = process.argv.slice(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函數在下一個時間點調用

  1. function foo() { 
  2.     console.error('foo'); 
  3.  
  4. process.nextTick(foo); 
  5. console.error('bar'); 

輸出結果為bar、foo

雖然下述方式也能實現同樣效果:

  1. setTimeout(foo, 0); 
  2. console.log('bar'); 

兩者區別在于:

  • process.nextTick()會在這一次event loop的call stack清空后(下一次event loop開始前)再調用callback
  • setTimeout()是并不知道什么時候call stack清空的,所以何時調用callback函數是不確定的

參考文獻

http://nodejs.cn/api/process.html

 

https://vue3js.cn/interview/

 

責任編輯:武曉燕 來源: JS每日一題
相關推薦

2021-06-04 07:55:30

Node Fs 操作

2021-06-07 09:41:48

NodeBuffer 網絡協議

2021-06-08 08:33:23

NodeStream數據

2021-06-10 07:51:07

Node.js循環機制

2021-10-29 09:40:21

設計模式軟件

2021-06-30 07:19:36

React事件機制

2021-07-19 07:55:24

Redux中間件原理

2021-05-31 10:35:34

TCPWebSocket協議

2021-08-11 08:53:23

Git命令面試

2021-07-12 08:35:24

組件應用場景

2021-07-07 08:36:45

React應用場景

2021-09-13 09:23:52

TypeScript命名空間

2021-06-15 10:01:02

應用系統軟件

2021-06-02 09:42:29

Node. js全局對象

2021-07-13 07:52:03

ReactHooks組件

2021-09-26 10:57:16

集合操作場景

2021-09-27 06:50:04

非線性數據

2024-07-26 08:10:10

2021-07-08 06:51:29

React函數組件

2021-07-29 07:55:20

React Fiber架構引擎
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩综合一区 | 黑人久久久 | 日韩精品成人 | 免费艹逼视频 | 亚洲精品第一 | 成人h动漫亚洲一区二区 | 久久国产精99精产国高潮 | 免费在线观看黄视频 | 久久精品国产一区二区电影 | 婷婷桃色网 | 一区欧美 | 久久久www成人免费精品 | 国产精品一区一区三区 | 日韩免费1区二区电影 | 草久久久 | 久久精品16 | 午夜精品久久久 | 国产偷录视频叫床高潮对白 | 精久久久久 | 亚洲天堂av在线 | 五月婷婷中文 | 日韩精品一区二区三区中文在线 | 一区二区三区四区电影 | 欧美日韩不卡合集视频 | 亚洲精品国产成人 | 看a网站 | 亚洲一区二区视频在线播放 | 免费黄色的视频 | 国产精品久久久久久av公交车 | 欧美在线观看免费观看视频 | 亚洲精品专区 | 成人精品一区二区 | 亚洲精品一区在线 | 黄视频国产| 欧美日韩专区 | 久久久久国产精品午夜一区 | 乱一性一乱一交一视频a∨ 色爱av | 成人免费视频观看 | 狠狠操电影 | av一区二区三区在线观看 | 在线日韩视频 |