File tree Expand file tree Collapse file tree 1 file changed +13
-26
lines changed Expand file tree Collapse file tree 1 file changed +13
-26
lines changed Original file line number Diff line number Diff line change @@ -46,37 +46,24 @@ export const retryFetch = (
4646 url : string ,
4747 fetchOptions : RequestInit ,
4848 retries : number = 3 ,
49- timeout : number = 10 // set an overall timeout for this function
49+ timeoutMs : number = 10 // set an overall timeout for this function
5050) : Promise < Response > => {
5151 return new Promise ( ( resolve , reject ) => {
5252 const retryWrapper = ( n : number ) => {
53- requestWrapper ( )
54- . then ( res => resolve ( res ) )
55- . catch ( async err => {
56- if ( n > 0 ) {
57- await delay ( 1000 ) ;
58- retryWrapper ( -- n ) ;
59- } else {
60- reject ( err ) ;
61- }
62- } ) ;
63- } ;
64-
65- const requestWrapper = ( ) : Promise < Response > => {
66- return new Promise ( ( resolve , reject ) => {
67- let timeoutId : NodeJS . Timeout ;
68- if ( timeout ) {
69- timeoutId = setTimeout ( ( ) => reject ( 'error: timeout' ) , timeout ) ;
53+ fetch ( url , {
54+ ...fetchOptions ,
55+ signal : AbortSignal . timeout ( timeoutMs )
56+ } )
57+ . then ( res => resolve ( res ) )
58+ . catch ( async err => {
59+ if ( n > 0 ) {
60+ await delay ( 1000 ) ;
61+ retryWrapper ( -- n ) ;
62+ } else {
63+ reject ( err ) ;
7064 }
71- return fetch ( url , fetchOptions )
72- . then ( res => resolve ( res ) )
73- . catch ( err => reject ( err ) )
74- . finally ( ( ) => {
75- if ( timeoutId ) {
76- clearTimeout ( timeoutId ) ;
77- }
78- } ) ;
7965 } ) ;
66+
8067 } ;
8168
8269 retryWrapper ( retries ) ;
You can’t perform that action at this time.
0 commit comments