官术网_书友最值得收藏!

2.9 輸出控制鍵

在很多情況下,應用程序需要模擬組合控制鍵操作(如復制、粘貼、撤銷等)來代替用戶完成一些鍵盤操作功能。而在Node.js平臺下,通過readline模塊的write()方法可以實現向控制臺輸出控制鍵的功能。

下面通過一個具體的實例向讀者演示如何應用readline.write()方法實現對控制臺輸出的內容進行撤銷操作的功能。

【代碼2-9】(詳見源代碼目錄ch02-node-console-ctrl-key.js文件)

【代碼分析】

? 第04行通過console.info()方法向控制臺終端輸入一行內容提示文字。

? 第05~09行代碼執行了加載readline模塊并進行初始化定義的操作。

? 第10行代碼使用readline模塊的write()方法來向控制臺終端寫入一行文字內容。readline.write()方法的語法如下:

    readline.write(data, [key])

write()方法將參數data的內容寫入控制臺標準輸出流,參數key是一個代表鍵序列的對象,當終端是一個TTY(計算機終端設備)時可用。

? 第11行通過變量timeoutLength定義了一段時間間隔(時長為3秒)。

? 第12~15行借助setTimeout()方法實現了經過一段時間延遲后,通過第14行中的rl.write()方法執行向控制臺模擬輸出撤銷操作快捷鍵并刪除之前寫入的一行文字內容的功能;其中rl.write()方法的key參數為一個JSON對象({ctrl:true, name:'u'}),該對象設定了一個組合控制鍵“Ctrl+U”,該組合控制鍵可以實現撤銷上一步操作的功能。

下面在控制臺中測試該代碼實例,具體效果如圖2.9和圖2.10所示。

圖2.9 向控制臺輸出組合控制鍵(1)

圖2.10 向控制臺輸出組合控制鍵(2)

從圖2.9和圖2.10中的結果可以看到,圖2.9中通過readline.write()方法向控制臺終端寫入的數據,在經過一段時間(3s)延遲后,再次通過readline.write()方法向控制臺終端寫入具有撤銷操作的組合控制鍵(Ctrl+U)后,實現了刪除數據的操作。

主站蜘蛛池模板: 察雅县| 峨山| 工布江达县| 铜山县| 西吉县| 北安市| 道孚县| 任丘市| 当涂县| 水城县| 大城县| 建阳市| 蒲江县| 且末县| 右玉县| 青铜峡市| 宣武区| 松原市| 无为县| 沂水县| 勃利县| 新巴尔虎左旗| 卢湾区| 清水河县| 广南县| 类乌齐县| 合川市| 赤水市| 胶南市| 盘山县| 石阡县| 达拉特旗| 三穗县| 平顶山市| 寻乌县| 天峻县| 屏山县| 襄垣县| 宝鸡市| 古蔺县| 池州市|