nodejs ตัวอย่างการใช้ async await

การใช้ async/await เป็นรูปแบบการเขียนโค้ดที่ทำให้การจัดการโค้ดแบบ asynchronous ใน Node.js เป็นเรื่องง่ายและมีความอ่านง่ายขึ้น ต่อไปนี้เป็นตัวอย่างการใช้ async/await:

  1. สร้างฟังก์ชัน async:
    เริ่มต้นโดยการสร้างฟังก์ชัน async โดยใช้คีย์เวิร์ด async. ฟังก์ชัน async จะเป็น asynchronous และสามารถใช้ await เพื่อรอข้อมูลที่ต้องการจาก Promise:

    1
    2
    3
    async function fetchData() {
    // รอข้อมูลจาก Promise
    }
  2. ในฟังก์ชัน async คุณสามารถใช้ await เพื่อรอข้อมูลจาก Promise ให้กับตัวแปร:

    1
    2
    3
    4
    async function fetchData() {
    const data = await someAsyncFunction();
    console.log(data);
    }
  3. เรียกใช้ฟังก์ชัน async ในโปรแกรมหลัก:

    1
    2
    3
    4
    5
    6
    7
    fetchData()
    .then(() => {
    console.log('Data fetching completed.');
    })
    .catch((error) => {
    console.error('Error:', error);
    });
  4. await ใช้รอ Promise:
    await ในฟังก์ชัน async จะรอการแก้ไขของ Promise และคืนค่าที่ Promise แก้ไขขึ้นมา หาก Promise ล้มเหลวจะเกิดข้อผิดพลาด:

    1
    2
    3
    4
    5
    6
    7
    8
    async function fetchData() {
    try {
    const data = await someAsyncFunction();
    console.log(data);
    } catch (error) {
    console.error('Error:', error);
    }
    }

นี่คือตัวอย่างโค้ดที่ใช้ async/await เพื่อรอและดึงข้อมูลจาก Promise:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
async function fetchUserData(userId) {
try {
// รอการแก้ไขของ Promise
const userData = await getUserDataFromAPI(userId);
console.log('User Data:', userData);

// รอการแก้ไขของ Promise อื่น
const userPosts = await getUserPostsFromAPI(userId);
console.log('User Posts:', userPosts);
} catch (error) {
console.error('Error:', error);
}
}

// เรียกใช้งานฟังก์ชัน fetchUserData และรอข้อมูลสิ้นสุด
fetchUserData(123)
.then(() => {
console.log('Data fetching completed.');
})
.catch((error) => {
console.error('Error:', error);
});

ในตัวอย่างนี้ fetchUserData เป็นฟังก์ชัน async ที่ใช้ await เพื่อรอข้อมูลจากสอง Promise และจัดการกับข้อผิดพลาดที่เกิดขึ้น.