async await ใน vue js

การใช้ async และ await ใน Vue.js ช่วยให้คุณสามารถจัดการการร้องขอ HTTP, การดำเนินการที่ใช้เวลานาน, หรือการทำงานกับข้อมูลที่มีการเรียกข้อมูลโดยอาศัยการร้องขอไม่สามารถทำได้ทันทีได้อย่างรวดเร็วและแบบไม่บล็อก UI ในแอป Vue.js ของคุณ.

นี่คือตัวอย่างการใช้ async และ await ใน Vue.js:

  1. สร้างฟังก์ชัน async ใน Methods:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <template>
    <div>
    <button @click="fetchData">Fetch Data</button>
    <div v-if="isLoading">Loading...</div>
    <div v-else>
    <ul>
    <li v-for="item in items" :key="item.id">{{ item.name }}</li>
    </ul>
    </div>
    </div>
    </template>

    <script>
    export default {
    data() {
    return {
    items: [],
    isLoading: false,
    };
    },
    methods: {
    async fetchData() {
    this.isLoading = true;

    try {
    const response = await this.$axios.get('/api/data'); // ตัวอย่างการใช้ Axios สำหรับการร้องขอ HTTP
    this.items = response.data;
    } catch (error) {
    console.error('Error fetching data:', error);
    } finally {
    this.isLoading = false;
    }
    },
    },
    };
    </script>
  2. ใช้ await เพื่อรอการเรียก API:

    ในตัวอย่างนี้เราใช้ await เมื่อเรียก this.$axios.get('/api/data') เพื่อรอให้การร้องขอ HTTP เสร็จสิ้นก่อนที่จะดำเนินการต่อไป.

  3. จัดการข้อมูลหลังจากการร้องขอ HTTP สำเร็จ:

    เมื่อการร้องขอ HTTP เสร็จสิ้นและไม่มีข้อผิดพลาด, เรากำหนดค่า this.items ในข้อมูลที่ได้รับจากการร้องขอ HTTP และปิดตัวแสดงข้อความ “Loading…”. หากมีข้อผิดพลาดในการร้องขอ, เราจะแสดงข้อผิดพลาดในคอนโซล.

  4. จัดการข้อมูลหลังจากการร้องขอ HTTP ล้มเหลว:

    ในบล็อก catch, เราจัดการกับข้อผิดพลาดที่เกิดขึ้นในการร้องขอ HTTP และแสดงข้อผิดพลาดในคอนโซล. หลังจากนั้นเราปิดตัวแสดงข้อความ “Loading…” ในบล็อก finally เพื่อให้แน่ใจว่าเมื่อการร้องขอ HTTP เสร็จสิ้น (ไม่ว่าจะสำเร็จหรือล้มเหลว) เราก็จะปิดตัวแสดงข้อความโหลด.

คุณสามารถใช้ async และ await เพื่อจัดการกับการร้องขอ HTTP และข้อมูลใน Vue.js อย่างมีประสิทธิภาพและง่ายต่อการอ่านและบริหาร.