File tree Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change @@ -156,6 +156,7 @@ export default class Router {
156156 // eslint-disable-next-line no-async-promise-executor
157157 return new Promise ( async ( resolve , reject ) => {
158158 const { url, options, request, pendingPromises } = callLog ;
159+ let eventListenerAbortController : AbortController | undefined ;
159160 if ( callLog . signal ) {
160161 const abort = ( ) => {
161162 // TODO may need to bring that flushy thing back.
@@ -191,7 +192,11 @@ export default class Router {
191192 if ( callLog . signal . aborted ) {
192193 abort ( ) ;
193194 }
194- callLog . signal . addEventListener ( 'abort' , abort ) ;
195+ eventListenerAbortController = new AbortController ( ) ;
196+ callLog . signal . addEventListener ( 'abort' , abort , {
197+ once : true ,
198+ signal : eventListenerAbortController . signal ,
199+ } ) ;
195200 }
196201
197202 if ( this . needsToReadBody ( request ) ) {
@@ -218,6 +223,8 @@ export default class Router {
218223 resolve ( observableResponse ) ;
219224 } catch ( err ) {
220225 reject ( err ) ;
226+ } finally {
227+ eventListenerAbortController ?. abort ( ) ;
221228 }
222229 } else {
223230 reject (
You can’t perform that action at this time.
0 commit comments