อ็อบเจ็กต์ 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