const getDataFromApi = async (pathParam) => {
  return fetch(`https://demo2202897.mockable.io/${pathParam}`).then(res => res.json());
};

const getAllData = () => {
  const promises = [];
  promises.push(getDataFromApi("qotd"));
  promises.push(getDataFromApi("getLargeData"));
  return Promise.all(promises);
}

const rejectAfter = (timeout) => {
  return new Promise((resolve, reject) => {
     setTimeout(() => reject(new Error("Operation timed out!")), timeout);
  });  
}

const raceToGetData = async (timeout) => {
  try {
    const result = await Promise.race([getAllData(), rejectAfter(timeout)]);
    console.log(result);
  } catch(e) {
    console.log(e.message);
  }
}

raceToGetData(500);

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.