Skip to content

Instantly share code, notes, and snippets.

@llcoollasa
Created October 20, 2022 06:10
Show Gist options
  • Save llcoollasa/8ff25e7d21927364f1190ed82f5671de to your computer and use it in GitHub Desktop.
Save llcoollasa/8ff25e7d21927364f1190ed82f5671de to your computer and use it in GitHub Desktop.
Await for some time when server returns 429
// Simple delay function using setTimeout and promise
export const delay = (milliseconds: number) => {
return new Promise((resolve) => setTimeout(resolve, milliseconds));
};
// usage of delay function
async function getMeFoodAndDrinks(someParams: any, retries = 2): Promise<FoodAndDrinks[]> {
try {
return await getMeFoodAndDrinksFromStore(someParams);
} catch (error) {
if (retries > 0) {
logger.warn({ error }, `Retrying... ${retries}`);
await delay(60000);
return getMeFoodAndDrinks(retries - 1);
} else {
logger.error({ error }, 'Retrying failed');
throw error;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment