My FeedDiscussionsHeadless CMS
New
Sign in
Log inSign up
Learn more about Hashnode Headless CMSHashnode Headless CMS
Collaborate seamlessly with Hashnode Headless CMS for Enterprise.
Upgrade ✨Learn more

How will you return the promise which will resolve earlier than others in an array of promises and cancel others which are pending?

Avi's photo
Avi
·Nov 27, 2019

Please find the code below:

const cacheSourceA = new Promise((resolve, reject) => {
    setTimeout(() => resolve({ someValue: 101 }), 1500);
});

const cacheSourceB = new Promise((resolve, reject) => {
    setTimeout(() => resolve({ someValue: 100 }), 200);
});

const cacheSourceC = new Promise((resolve, reject) => {
    setTimeout(() => resolve({ someValue: 102 }), 2000);
});


// create function getCachedValue
const getCachedValue = () => {

  // write your code here

};

getCachedValue();  // this should return the **cacheSourceB** because it's going to finish in just 200ms

Note: Check for errors also i.e. cacheSourceB is fast but it can return undefined in a real scenario.