@@ -105,9 +105,12 @@ function triggerEffect(effect, trigger, outputs, manualAbortSignal, listAbortSig
105105 return reject ( signal . reason ) ;
106106 }
107107
108- signal . addEventListener ( "abort" , ( ) => {
108+ function onAbort ( ) {
109109 reject ( signal . reason ) ;
110- } ) ;
110+ signal . removeEventListener ( "abort" , onAbort ) ;
111+ }
112+
113+ signal . addEventListener ( "abort" , onAbort ) ;
111114
112115 const sendDataToOverlay = ( data , overlayInstance ) => {
113116 const overlayEventName = effectDef . overlayExtension ?. event ?. name ;
@@ -132,6 +135,8 @@ function triggerEffect(effect, trigger, outputs, manualAbortSignal, listAbortSig
132135 }
133136 } catch ( error ) {
134137 return reject ( error ) ;
138+ } finally {
139+ signal . removeEventListener ( "abort" , onAbort ) ;
135140 }
136141 } ) ;
137142}
@@ -222,7 +227,7 @@ function runEffects(runEffectsContext) {
222227 abortController : effectListAbortController
223228 } ) ;
224229
225- effectListAbortController . signal . addEventListener ( "abort" , ( ) => {
230+ function onAbort ( ) {
226231 const { message, bubbleStop } = effectListAbortController . signal . reason ?? { } ;
227232
228233 logger . info ( `Effect list ${ runEffectsContext . effects . id } was aborted. Reason: ${ message } ` ) ;
@@ -238,7 +243,10 @@ function runEffects(runEffectsContext) {
238243 stopEffectExecution : ! ! bubbleStop ,
239244 outputs : runEffectsContext . outputs ?? { }
240245 } ) ;
241- } ) ;
246+ effectListAbortController . signal . removeEventListener ( "abort" , onAbort ) ;
247+ }
248+
249+ effectListAbortController . signal . addEventListener ( "abort" , onAbort ) ;
242250
243251 /**
244252 * @type {Promise<void>[] }
@@ -247,6 +255,7 @@ function runEffects(runEffectsContext) {
247255
248256 for ( const effect of effects ) {
249257 if ( effectListAbortController . signal . aborted ) {
258+ effectListAbortController . signal . removeEventListener ( "abort" , onAbort ) ;
250259 return ;
251260 }
252261
@@ -284,6 +293,8 @@ function runEffects(runEffectsContext) {
284293 runEffectsContext . executionId
285294 ) ;
286295
296+ effectListAbortController . signal . removeEventListener ( "abort" , onAbort ) ;
297+
287298 return resolve ( {
288299 success : true ,
289300 stopEffectExecution : response . bubbleStop ,
@@ -309,6 +320,8 @@ function runEffects(runEffectsContext) {
309320 runEffectsContext . executionId
310321 ) ;
311322
323+ effectListAbortController . signal . removeEventListener ( "abort" , onAbort ) ;
324+
312325 return resolve ( {
313326 success : true ,
314327 stopEffectExecution : false ,
0 commit comments