Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import * as retry from 'bluebird-retry';
- function isRateLimitOrTempError(err: Error & { statusCode?: number }) {
- return err.statusCode && (
- err.statusCode == 429 // Rate Limit
- || err.statusCode == 502 // Temporary error, retry again
- );
- }
- function retryOnRateLimited<T>(request: () => Promise<T>): Promise<T> {
- return retry(request, {
- max_tries: 50,
- backoff: 1.25,
- throw_original: true,
- interval: 2000,
- predicate: isRateLimitOrTempError,
- });
- }
- const result = await retryOnRateLimited(() => request.post('/limit-me'))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement