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'

const nativePromise = Promise.resolve($.get(getUserAPI, {}));

nativePromise.then(({
    data
  }) => {
    const userId = data.user.id;
    return $.get(getOrdersAPI, {
      user_id: userId
    })
  }).then(({
    data
  }) => {
    const orderId = data.orders.at(-1).id
    // 故意搜尋一個不存在的 orderId
   /*  const orderId = 88888888888888888888888 */
    return $.get(getOrderDetailsAPI, {
      order_id: orderId
    })
      }).then(({
    data
      }) => {
    orderIdDOM.text(data.order.id)
    orderContentDOM.text(data.order.content)
    orderAmountDOM.text(data.order.amount)
      })
  .catch((error) => {
    console.error("An error occurred:", error);
  })
  .finally(() => {
    loadingDOM.text('done');
  });