JSFiddle - React, Tailwind, and code Playground

by jason60810

HTML

<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<div>
  <p class="loading">loading...</p>
  <p>尊貴的客戶您好,您上次的消費內容是:</p>
  <p>訂單編號:<span class="order_id"></span></p>
  <p>訂單內容:<span class="order_content"></span></p>
  <p>訂單金額:<span class="order_amount"></span></p>
  <p>希望這次也能有機會服務您!</p>
</div>

JavaScript

const orderIdDOM = $('.order_id')
const orderContentDOM = $('.order_content')
const orderAmountDOM = $('.order_amount')
const loadingDOM = $('.loading');

const getUserAPI = 'https://codelove.tw/fake-api/get-current-user'
const getOrdersAPI = 'https://codelove.tw/fake-api/get-orders'
const getOrderDetailsAPI = 'https://codelove.tw/fake-api/get-order-details'

async function fetchOrderDetails() {
  try {
    const userData = await $.get(getUserAPI, {});
    const userId = userData.data.user.id;

    const ordersData = await $.get(getOrdersAPI, { user_id: userId });
    const orderId = ordersData.data.orders.at(-1).id;

    // 故意搜尋一個不存在的 orderId
    // const orderId = 88888888888888888888888;

    const orderDetailsData = await $.get(getOrderDetailsAPI, { order_id: orderId });

    orderIdDOM.text(orderDetailsData.data.order.id);
    orderContentDOM.text(orderDetailsData.data.order.content);
    orderAmountDOM.text(orderDetailsData.data.order.amount);
  } catch (error) {
    console.error("An error occurred:", error);
  } finally {
    loadingDOM.text('done');
  }
}

fetchOrderDetails().then(() => {
  console.log("fetchOrderDetails has completed.");
});