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();
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.