ทำไมต้องเขียนโปรแกรมแบบอะซิงโครนัส

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 และแหล่งอื่นๆ หากมีปัญหาเกี่ยวกับลิขสิทธิ์หรือปัญหาอื่นๆ โปรดส่งความคิดเห็น บริษัทของเราจะตรวจสอบและดำเนินการโดยเร็วที่สุด