อ็อบเจ็กต์ Promise แสดงถึงความสมบูรณ์ในที่สุด (หรือความล้มเหลว) ของการดำเนินการแบบอะซิงโครนัสและค่าผลลัพธ์ ฟังก์ชัน Async กำลังรอและตัวดำเนินการทำงานตามสัญญา
ฟังก์ชัน Async/await ช่วยให้เราเขียนโค้ดที่ดูซิงโครนัสได้อย่างสมบูรณ์ในขณะที่ทำงานแบบ async อยู่เบื้องหลัง
ตัวอย่างเช่น สมมติว่าเรามีฟังก์ชันแบบอะซิงโครนัสที่ส่งกลับสัญญา −
// Promise that resolves to 100 after 2sec function getHundred() { return new Promise(resolve => { setTimeout(() => { resolve(100); }, 2000); }); }
เราต้องการใช้สิ่งนี้ในฟังก์ชัน แต่เราต้องรอค่าที่ส่งคืน โดยใช้การเรียกกลับเราสามารถทำเช่นนี้ได้ -
function useGetHundred() { getHundred().then((value) => { console.log(value); }) }
แต่เราจำเป็นต้องสร้างการเรียกกลับเพื่อดำเนินการกับข้อมูลที่ส่งคืนโดยไม่จำเป็น เราสามารถใช้ async await เพื่อทำให้โค้ดนี้ง่ายขึ้น -
ตัวอย่าง
// Declare an async function. When this function is called, it'll also return a Promise // But inside this function any async calls can be made synchronous using await keyword async function useGetHundredAsync() { // wait for the getHundred promise to resolve then store its value in value. let value = await getHundred(); console.log(value) }
ผลลัพธ์
100