ใน nodejs นั้น await ใช้เพื่อหยุดการดำเนินการชั่วคราวในลักษณะที่ไม่ปิดกั้น รอการร้องขอแบบอะซิงโครนัสของสัญญา และรอให้วิธีอะซิงโครนัสดำเนินการให้เสร็จสิ้น await สามารถใช้ในฟังก์ชัน async เพื่อรอค่าส่งคืนของฟังก์ชัน async ; สัญญาว่าจะส่งคืน หากการปฏิเสธไม่สำเร็จ ค่าการปฏิเสธจะถูกโยนทิ้งและสามารถบันทึกได้โดย "try/catch"

สภาพแวดล้อมการทำงานของบทความนี้: ระบบ Windows 10, nodejs เวอร์ชัน 12.19.0, คอมพิวเตอร์ Dell G3
การใช้งาน Async/await ถูกนำมาใช้ใน Node.js 7 night แต่เป็นไปได้ที่จะเปิดใช้งานฟังก์ชัน async/await อย่างเป็นทางการใน Node.js 8 และ Javascript V8 เท่านั้น
async/รอคืออะไร? วิธีดำเนินการแบบอะซิงโครนัสโดยใช้ Promise ในอดีต กรณีต่อไปนี้จะแสดงวิธีใช้ Promise และ Fetch API เพื่อดึงข้อมูล:
ฟังก์ชั่น getTrace () { return fetch('https://www.jdon.com', { method: 'get' }) } getTrace() .then() .catch()เมื่อใช้ async/await คุณสามารถหยุดการดำเนินการชั่วคราวในลักษณะที่ไม่มีการบล็อก และรอให้ผลลัพธ์กลับมา หากสัญญาส่งคืนการปฏิเสธที่ไม่สำเร็จ ค่าการปฏิเสธจะถูกโยนทิ้งและสามารถบันทึกได้โดย try/catch กรณีข้างต้นสามารถเขียนได้ดังต่อไปนี้โดยใช้ async/await:
ฟังก์ชั่น async getTrace () { ให้ pageContenttry { pageContent = รอการดึงข้อมูล ('https://www.jdon.com', { วิธีการ: 'get' }) } catch (เช่น) { console.error (อดีต) } กลับ pageContent} getTrace() .แล้ว()มาดูกรณีของการใช้ async/await ใน Node.js การใช้ settimeout เพื่อชะลอการทำงานของฟังก์ชัน และการใช้ async/await encapsulation:
// app.jsconst timeout = function (delay) { return new Promise((แก้ไข, ปฏิเสธ) => { setTimeout(() => { แก้ไข () }, ล่าช้า) }) } ฟังก์ชัน async timer () { console.log ('ตัวจับเวลาเริ่มต้น') รอ Promise.resolve (หมดเวลา (100)); console.log ('ตัวจับเวลาเสร็จสิ้น') } ตัวจับเวลา ()สร้างไฟล์ app.js และรัน:
โหนด app.js
หากไม่สามารถทำงานได้ อาจเป็นไปได้ว่า nodejs เป็นเวอร์ชันกลางคืนและไม่รองรับ async/await อย่างเป็นทางการ บรรทัดคำสั่งควรเป็น:
โหนด --harmony-async-รอ app.js
การเรียนรู้ที่แนะนำ: "วิดีโอสอน nodejs"
ข้างต้นคือรายละเอียดการใช้งาน await ใน nodejs สำหรับข้อมูลเพิ่มเติม โปรดอ่านบทความอื่นๆ ที่เกี่ยวข้องบนเว็บไซต์นี้!