Advertisement
Guest User

Untitled

a guest
Aug 20th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.54 KB | None | 0 0
  1. import * as retry from 'bluebird-retry';
  2. function isRateLimitOrTempError(err: Error & { statusCode?: number }) {
  3. return err.statusCode && (
  4. err.statusCode == 429 // Rate Limit
  5. || err.statusCode == 502 // Temporary error, retry again
  6. );
  7. }
  8. function retryOnRateLimited<T>(request: () => Promise<T>): Promise<T> {
  9. return retry(request, {
  10. max_tries: 50,
  11. backoff: 1.25,
  12. throw_original: true,
  13. interval: 2000,
  14. predicate: isRateLimitOrTempError,
  15. });
  16. }
  17.  
  18. const result = await retryOnRateLimited(() => request.post('/limit-me'))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement