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

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

const getDataWhenAnyAvailable = async () => {
  try {
    const promises = [];
    promises.push(getDataFromApi("qotd"));
    promises.push(getDataFromApi("getLargeData"));
    promises.push(rejectAfter(500));
    const result = await Promise.any(promises);
    console.log(result);
  } catch (e) {
    // all the promises were rejected
    console.error(e);
  }
}

getDataWhenAnyAvailable();

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.