ทำความเข้าใจกับการบล็อกใน Node.js หรือไม่

Thakhwam Kheaci Kab Kar Blxk Ni Node Js Hrux Mi



รหัสการบล็อกหรือซิงโครนัสเป็นรหัสที่หยุดหรือหยุดการทำงานของกระบวนการที่กำลังจะเกิดขึ้นหรืออยู่ระหว่างดำเนินการทั้งหมดจนกว่ากระบวนการที่ดำเนินการอยู่ในปัจจุบันจะได้รับการคอมไพล์ รหัสประเภทนี้ส่วนใหญ่จะใช้เมื่อกระบวนการที่จะดำเนินการไม่ได้ขึ้นอยู่กับแต่ละกระบวนการ กล่าวง่ายๆ ก็คือ ไม่ควรป้อนเอาต์พุตของวิธีแรกเป็นค่าของวิธีที่สอง

คู่มือนี้ให้คำอธิบายเกี่ยวกับการบล็อกใน Node.js

ทำความเข้าใจกับการบล็อกใน Node.js หรือไม่

เพื่อให้เข้าใจถึงการบล็อกใน Node.js วิธีการบล็อกที่จัดทำโดย “ FS ” โมดูลสามารถใช้งานได้ตามความต้องการของโครงการ ใน Node.js ทุกเมธอดที่มีคีย์เวิร์ดเป็น “ ซิงค์ ' ชอบ ' อ่านไฟล์ซิงค์() , ' เปลี่ยนชื่อซิงค์() ” และอื่น ๆ ถือเป็นวิธีการซิงโครนัสหรือการบล็อก







ตัวอย่างวิธีการบล็อกบางส่วนใน Node.js มีอธิบายไว้ด้านล่าง:



ตัวอย่างที่ 1: การใช้วิธีบล็อก 'fs.renameSync()'

fs.renameSync() ” วิธีการซิงโครนัสเปลี่ยนชื่อโฟลเดอร์จากชื่อหรือเส้นทางเก่าเป็นชื่อหรือเส้นทางใหม่ ลักษณะการบล็อกของมันจะหยุดการดำเนินการอื่นทั้งหมดจนกว่างานที่ระบุ เช่น การเปลี่ยนชื่อโฟลเดอร์จะยังไม่เสร็จสิ้น



ไวยากรณ์





ไวยากรณ์พื้นฐานของ “ fs.renameSync() ” วิธีการเขียนไว้ด้านล่าง:

FS เปลี่ยนชื่อSync ( ชื่อเก่าชื่อใหม่ )

ไวยากรณ์ข้างต้นแสดงให้เห็นว่า “ fs.renameSync() ” ต้องการเพียงเส้นทางของไฟล์ที่ต้องแก้ไขและเส้นทางไฟล์ที่อัปเดตที่จะถูกตั้งค่า



เรามายกตัวอย่างให้เข้าใจการทำงานของการบล็อคกันเถอะ” เปลี่ยนชื่อซิงค์() ” วิธีการใน Node.js:

มี fs = จำเป็นต้อง ( 'เอฟเอส' ) ;

FS เปลี่ยนชื่อSync ( 'usecase.txt' , 'demoAs.json' ) ;

คอนโซล บันทึก ( 'เปลี่ยนชื่อโฟลเดอร์เรียบร้อยแล้ว' )

ในข้อมูลโค้ดข้างต้น:

  • ประการแรก “ FS ” โมดูลถูกนำเข้าและจัดเก็บเป็นวัตถุในตัวแปรใหม่ชื่อ “ FS '.
  • จากนั้นให้เรียกใช้ ' เปลี่ยนชื่อซิงค์() ” แล้วส่งชื่อเก่าและชื่อใหม่เป็นพารามิเตอร์
  • ไม่จำเป็นต้องใช้ฟังก์ชันการโทรกลับเนื่องจากโค้ดประเภทซิงโครนัส
  • นอกจากนี้ ให้แสดงข้อความจำลองบนคอนโซลเพื่อตรวจสอบการบล็อกกระบวนการด้วยสายตา

ผลลัพธ์ที่สร้างขึ้นแสดงให้เห็นว่าโฟลเดอร์ที่กำหนดได้รับการเปลี่ยนชื่อเรียบร้อยแล้วด้วยความช่วยเหลือของการบล็อก “ เปลี่ยนชื่อซิงค์() ' วิธี:

ตัวอย่างที่ 2: การใช้วิธี Blocking “mkdirSync()”

mkdirSync() ” เป็นวิธีการซิงโครนัสที่กำหนดไว้ล่วงหน้าของ “ FS ” โมดูลที่สร้างโฟลเดอร์/ไดเร็กทอรีในระบบไฟล์

ไวยากรณ์

ไวยากรณ์ทั่วไปของ “ mkdirSync() ” วิธีการเขียนไว้ด้านล่าง:

mkdirSync ( เส้นทางตัวเลือก )

mkdirSync() ” ใช้งานได้กับพารามิเตอร์สองตัวต่อไปนี้เท่านั้น:

  • เส้นทาง: ระบุเส้นทางหรือชื่อของไดเร็กทอรีที่จำเป็นในการสร้าง
  • ตัวเลือก: เป็นพารามิเตอร์ทางเลือกที่กำหนดการสร้างโฟลเดอร์แบบเรียกซ้ำหรือไม่

มาดูตัวอย่างโค้ดของการบล็อก “ mkdirSync() ' วิธี:

คอนโซล บันทึก ( 'วิธีการปิดกั้น' ) ;

มี fs = จำเป็นต้อง ( 'เอฟเอส' ) ;

FS mkdirSync ( 'กรณีการใช้งาน' ) ;

คอนโซล บันทึก ( 'เปลี่ยนชื่อโฟลเดอร์เรียบร้อยแล้ว' ) ;

ในโค้ดข้างต้น ชื่อไดเร็กทอรีที่จะแปลงจะถูกส่งไปภายใน ' mkdirSync() ' วิธี. วิธีการนี้ถูกเรียกใช้โดย “ FS ” วัตถุโมดูลพร้อมกับข้อความจำลอง

ผลลัพธ์ที่สร้างขึ้นแสดงให้เห็นว่า “ mkdirSync() ” วิธีการได้ถูกนำไปใช้แล้ว และกำลังปิดกั้นกระบวนการที่กำลังจะเกิดขึ้นจนกว่าวิธีนี้จะเสร็จสิ้น:

ตัวอย่างที่ 3: การใช้วิธี Blocking “rmdirSync()”

rmdirSync() ” เป็นวิธีการซิงโครนัสที่จะลบโฟลเดอร์ออกจากเส้นทางที่ระบุ พฤติกรรมแบบซิงโครนัสจะบล็อกการดำเนินการอื่นทั้งหมดจนกว่างานที่ระบุ เช่น การลบโฟลเดอร์จะไม่สมบูรณ์

ไวยากรณ์

ไวยากรณ์ทั่วไปของ “ fs.rmdirSync() ” วิธีการเขียนไว้ด้านล่าง:

FS rmdirSync ( เส้นทางตัวเลือก )

ไวยากรณ์ข้างต้นแสดงให้เห็นว่า “ rmdirSync() ” ใช้งานได้เฉพาะกับ “ เส้นทาง ' และ ' ตัวเลือก ” พารามิเตอร์

ไปที่ข้อมูลโค้ดด้านล่างเพื่อลบโฟลเดอร์เป้าหมายออกจากโปรเจ็กต์ จากนั้นหลังจากลบแล้ว ให้ตรวจสอบความพร้อมใช้งานในโปรเจ็กต์:

ค่าคงที่ FS = จำเป็นต้อง ( 'เอฟเอส' ) ;

FS rmdirSync ( 'กรณีการใช้งาน' )

คอนโซล บันทึก ( 'ลบโฟลเดอร์เรียบร้อยแล้ว' ) ;

เป็นโฟลเดอร์ = FS มีอยู่ซิงค์ ( 'กรณีการใช้งาน' ) ;

คอนโซล บันทึก ( 'มีโฟลเดอร์อยู่:' , โฟลเดอร์ ) ;

ในบรรทัดโค้ดด้านบน:

  • ประการแรก “ rmdirSync() ” วิธีการถูกเรียกใช้ผ่านการนำเข้า “ FS ” วัตถุโมดูล ชื่อของไฟล์ที่ต้องการลบจะถูกส่งผ่านเป็นพารามิเตอร์
  • ต่อไป “ console.log() ” วิธีการแสดงข้อความยืนยัน
  • หลังจากนั้น “ มีอยู่ซิงค์() ” ยังถูกเรียกใช้เพื่อระบุว่ามีโฟลเดอร์ที่กำหนดอยู่ในไดเร็กทอรีปัจจุบันหรือไม่ ผลลัพธ์หรือผลลัพธ์ของวิธีนี้จะถูกเก็บไว้ใน “ โฟลเดอร์ ' ตัวแปร.
  • สุดท้ายนี้ “ console.log() ” วิธีการแสดงค่าของ “ โฟลเดอร์ ” ตัวแปรบนคอนโซล

ผลลัพธ์ที่สร้างขึ้นแสดงว่าโฟลเดอร์เป้าหมายถูกลบแล้วด้วยความช่วยเหลือในการบล็อก “ rmdirSync() ' วิธี:

นั่นคือทั้งหมดที่เกี่ยวกับการบล็อกใน Node.js

บทสรุป

การปิดกั้น ” รหัสหยุดการทำงานของกระบวนการทั้งหมดจนกว่ากระบวนการปัจจุบันจะถูกดำเนินการอย่างสมบูรณ์ ใช้เฉพาะสำหรับเมธอดหรือฟังก์ชันที่ต้องพึ่งพาซึ่งเอาต์พุตขึ้นอยู่กับผลลัพธ์ของฟังก์ชันก่อนหน้า รหัสการบล็อกยังเป็นตัวเลือกที่ดีเมื่อจำเป็นต้องดำเนินการกระบวนการตามลำดับ คู่มือนี้ได้แสดงข้อมูลโดยละเอียดเกี่ยวกับการบล็อกใน Node.js