ในบรรดาโมดูลในตัวมี “ อ่านบรรทัด ” โมดูลที่อ่านข้อมูลจากสตรีมที่อ่านได้ทีละบรรทัดตามลำดับ โมดูลนี้ยังประกอบด้วยวิธีการต่างๆ มากมายที่ใช้ฟังก์ชันพิเศษ เช่น “createInterface()” สร้างอินเทอร์เฟซแบบอ่านบรรทัด “cursorTo()” เลื่อนเคอร์เซอร์ “emitKeypressEvents()” ตอบสนองต่อเหตุการณ์ของแป้นพิมพ์ และอื่นๆ อีกมากมาย
บทความนี้จะสาธิตการทำงานของ readline “emitKeypressEvents()” ใน Node.js
Readline “emitKeypressEvents()” ทำงานอย่างไรใน Node.js
“ emitKeypressEvents () ” เป็นวิธีการที่กำหนดไว้ล่วงหน้าของโมดูล 'readline' ซึ่งจะตอบสนองต่อเหตุการณ์ของแป้นพิมพ์และส่งเสียงตามคีย์ที่กด โดยตอบสนองต่อการกดปุ่มทั้งหมดจากแป้นพิมพ์ เช่น Enter ปุ่มทิศทาง และอื่นๆ อีกมากมายในขณะที่จัดการกับบรรทัดคำสั่ง
ไวยากรณ์
ไวยากรณ์ทั่วไปของ 'emitkeypressEvents()' เป็นดังนี้:
อ่านบรรทัด emitKeypressEvents ( ลำธาร [ , อินเตอร์เฟซ ] )
พารามิเตอร์ที่ใช้ในไวยากรณ์ของ “ emitKeypressEvents () ” วิธีการอธิบายไว้ด้านล่าง:
- ลำธาร: มันแสดงถึงสตรีมที่อ่านได้ซึ่งข้อมูลจะถูกอ่าน
- อินเตอร์เฟซ: เป็นพารามิเตอร์ทางเลือกที่ระบุสตรีม 'ที่อ่านได้' ที่สร้างไว้แล้ว
มูลค่าส่งคืน: “emitKeypressEvents()” จะไม่ส่งคืนสิ่งใด
ตอนนี้ใช้วิธี 'emitKeypressEvents()' ในทางปฏิบัติ
ตัวอย่าง: การใช้เมธอด “emitKeypressEvents()” เพื่อจัดการเหตุการณ์คีย์บอร์ด
ตัวอย่างนี้ใช้วิธีการ 'emitKeypressEvents()' เพื่อพิมพ์คีย์ที่กดและคุณลักษณะ:
ค่าคงที่ อ่านบรรทัด = จำเป็นต้อง ( 'อ่านไลน์' ) ;คอนโซล บันทึก ( 'กดปุ่มแป้นพิมพ์ใดก็ได้' )
อ่านบรรทัด emitKeypressEvents ( กระบวนการ. มาตรฐาน ) ;
ถ้า ( กระบวนการ. มาตรฐาน . คือTTY )
กระบวนการ. มาตรฐาน . ตั้งค่า RawMode ( จริง ) ;
กระบวนการ. มาตรฐาน . บน ( 'กดปุ่ม' , ( STR, คีย์ ) => {
ถ้า ( สำคัญ. Ctrl == จริง && สำคัญ. ชื่อ == 'ค' ) {
กระบวนการ. ออก ( )
}
คอนโซล บันทึก ( STR )
คอนโซล บันทึก ( สำคัญ )
} )
คำอธิบายของโค้ดข้างต้นมีดังนี้:
- ประการแรก “ จำเป็นต้อง() ” วิธีการนำเข้าโมดูล “readline” ในโครงการ Node.js ปัจจุบัน
- ต่อไป “ console.log() ” แสดงข้อความที่ยกมาในหน้าจอเอาต์พุต
- หลังจากนั้น “ emitKeypressEvents () ” ช่วยให้เหตุการณ์ของแป้นพิมพ์ตอบสนองต่อการกดปุ่มใดๆ ในสตรีมอินพุต
- ตอนนี้ “ กระบวนการ.stdin ” ทรัพย์สินเชื่อมกับ “ .บน ” เหตุการณ์แป้นพิมพ์เพื่อตอบสนองต่อการกดแป้นคีย์บอร์ดใด ๆ
- ในคำจำกัดความของฟังก์ชันลูกศรเรียกกลับ “ ถ้า ” เงื่อนไขกำหนดบล็อกรหัสที่ระบุเงื่อนไข: ถ้า “ Ctrl ” กดปุ่มแล้วเท่ากับ “ จริง ” จากนั้นกระบวนการที่กำหนดจะออกโดยใช้ปุ่ม “ กระบวนการทางออก () ' วิธี.
- สุดท้ายนี้ “ console.log() ” วิธีการพิมพ์ “ STR ' และ ' สำคัญ ” ค่าอาร์กิวเมนต์
เอาท์พุต
ดำเนินการเพื่อ “ ดัชนี js ” โดยใช้คำสั่งที่ระบุด้านล่าง:
ดัชนีโหนด เจสผลลัพธ์ต่อไปนี้จะแสดงคีย์ที่กดพร้อมกับแอตทริบิวต์ หากต้องการออกจากกระบวนการให้กดปุ่ม “ Ctrl+C ' ปุ่มลัด:
นั่นคือทั้งหมดที่เกี่ยวกับการทำงานของ “emitKeypressEvents()” ใน Node.js
บทสรุป
บทอ่าน” emitKeypressEvents () ” วิธีการทำงานบนเหตุการณ์แป้นพิมพ์ในขณะที่กดปุ่มแป้นพิมพ์ใด ๆ ลงในสตรีมที่อ่านได้ วิธีนี้จะตรวจจับแป้นคีย์บอร์ดและส่งเสียงคุณลักษณะของมัน จะมีประโยชน์ในขณะที่ทำงานในบรรทัดคำสั่งเพื่อตอบสนองโดยการกดแป้นคีย์บอร์ด โพสต์นี้ได้อธิบายการทำงานของเมธอด readline “emitKeypressEvents()” ใน Node.js