ทำไมต้องเขียนโปรแกรมแบบอะซิงโครนัส
JavaScript เป็นภาษาเธรดเดียวการดำเนินการที่ใช้เวลานานเช่นการร้องขอเครือข่ายการอ่านและการเขียนไฟล์จะต้องดำเนินการแบบอะซิงโครนัสมิฉะนั้นอินเทอร์เฟซจะติดอยู่
ปัญหาโทรกลับนรก
รหัสโทรกลับที่ซ้อนกันหลายชั้นยากที่จะรักษา
Promise ไตรรัฐ
- pending: อยู่ระหว่างดำเนินการ
- fulfilled: ความสำเร็จ
- rejected: ล้มเหลว
fetch('/api/user').then(res => res.json()).then(data => console.log(data)).catch(err => console.error(err));น้ำตาลไวยากรณ์ async / await
เปิดตัว ES2017 เพื่อให้รหัสอะซิงโครนัสดูเหมือนซิงโครนัส:
async function loadUser() {การดำเนินการแบบขนาน
คำขออิสระหลายรายการขนานกับ Promise.all
กับดักทั่วไป
- ลืม await นำไปสู่การได้รับวัตถุ Promise แทนผลลัพธ์
- การใช้ await ไม่ถูกต้องในวงจรนำไปสู่การดำเนินการแบบอนุกรม
- ข้อผิดพลาดในการเขียน try/catch ทำให้ไม่สามารถจับภาพได้
คำประกาศ: บทความบนเว็บไซต์นี้มาจากเนื้อหาต้นฉบับ การแชร์ซ้ำ การสร้างโดย AI และแหล่งอื่นๆ หากมีปัญหาเกี่ยวกับลิขสิทธิ์หรือปัญหาอื่นๆ โปรดส่งความคิดเห็น บริษัทของเราจะตรวจสอบและดำเนินการโดยเร็วที่สุด
