第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

怎么配置nodejs中的全局變量

怎么配置nodejs中的全局變量

偶然的你 2019-06-07 19:06:56
怎么配置nodejs中的全局變量
查看完整描述

2 回答

?
慕少森

TA貢獻2019條經(jīng)驗 獲得超9個贊

全局對象與全局變量

global 最根本的作用是作為全局變量的宿主。按照ECMAScript 的定義,滿足以下條 件的變量是全局變量:

在最外層定義的變量;
全局對象的屬性;
隱式定義的變量(未定義直接賦值的變量)。

當你定義一個全局變量時,這個變量同時也會成為全局對象的屬性,反之亦然。需要注 意的是,在Node.js 中你不可能在最外層定義變量,因為所有用戶代碼都是屬于當前模塊的, 而模塊本身不是最外層上下文。

注意: 永遠使用var 定義變量以避免引入全局變量,因為全局變量會污染 命名空間,提高代碼的耦合風險。

process

process 是一個全局變量,即 global 對象的屬性。

它用于描述當前Node.js 進程狀態(tài) 的對象,提供了一個與操作系統(tǒng)的簡單接口。通常在你寫本地命令行程序的時候,少不了要 和它打交道。下面將會介紹process 對象的一些最常用的成員方法。

process.argv是命令行參數(shù)數(shù)組,第一個元素是 node,第二個元素是腳本文件名, 從第三個元素開始每個元素是一個運行參數(shù)。

console.log(process.argv);

將以上代碼存儲為argv.js,通過以下命令運行:

$ node argv.js 1991 name=byvoid --v "Carbo Kuo"
[ 'node',
'/home/byvoid/argv.js',
'1991',
'name=byvoid',
'--v',
'Carbo Kuo' ]

process.stdout是標準輸出流,通常我們使用的 console.log() 向標準輸出打印 字符,而 process.stdout.write() 函數(shù)提供了更底層的接口。
process.stdin是標準輸入流,初始時它是被暫停的,要想從標準輸入讀取數(shù)據(jù), 你必須恢復流,并手動編寫流的事件響應(yīng)函數(shù)。

process.stdin.resume();
process.stdin.on('data', function(data) {
process.stdout.write('read from console: ' + data.toString());
});

process.nextTick(callback)的功能是為事件循環(huán)設(shè)置一項任務(wù),Node.js 會在 下次事件循環(huán)調(diào)響應(yīng)時調(diào)用 callback。

初學者很可能不理解這個函數(shù)的作用,有什么任務(wù)不能在當下執(zhí)行完,需要交給下次事 件循環(huán)響應(yīng)來做呢?

我們討論過,Node.js 適合I/O 密集型的應(yīng)用,而不是計算密集型的應(yīng)用, 因為一個Node.js 進程只有一個線程,因此在任何時刻都只有一個事件在執(zhí)行。

如果這個事 件占用大量的CPU 時間,執(zhí)行事件循環(huán)中的下一個事件就需要等待很久,因此Node.js 的一 個編程原則就是盡量縮短每個事件的執(zhí)行時間。process.nextTick() 提供了一個這樣的 工具,可以把復雜的工作拆散,變成一個個較小的事件。

functiondoSomething(args, callback) {
somethingComplicated(args);
callback();
}
doSomething(functiononEnd() {
compute();
});

我們假設(shè)compute() 和somethingComplicated() 是兩個較為耗時的函數(shù),以上 的程序在調(diào)用
doSomething() 時會先執(zhí)行somethingComplicated(),然后立即調(diào)用 回調(diào)函數(shù),在 onEnd() 中又會執(zhí)行
compute()。下面用process.nextTick() 改寫上 面的程序:

functiondoSomething(args, callback) {
somethingComplicated(args);
process.nextTick(callback);
}
doSomething(functiononEnd() {
compute();
});



查看完整回答
反對 回復 2019-06-08
  • 2 回答
  • 0 關(guān)注
  • 745 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號