Skip to content

Commit afc7df3

Browse files
committed
Bypass loop if there are no listeners
1 parent de41ba4 commit afc7df3

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

packages/action-listener-middleware/src/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,9 @@ export function createActionListenerMiddleware<
247247
}
248248

249249
let stateBefore = api.getState()
250+
if (listenerMap.size === 0) {
251+
return next(action)
252+
}
250253

251254
let result: unknown
252255
for (const currentPhase of actualMiddlewarePhases) {
@@ -276,7 +279,6 @@ export function createActionListenerMiddleware<
276279
return result
277280
}
278281
}
279-
return next(action)
280282
}
281283

282284
type Unsubscribe = () => void

packages/action-listener-middleware/src/tests/listenerMiddleware.test.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,12 @@ describe('createActionListenerMiddleware', () => {
6969
expect(foundExtra).toBe(originalExtra)
7070
})
7171

72+
test('Passes through if there are no listeners', () => {
73+
const originalAction = testAction1('a')
74+
const resultAction = store.dispatch(originalAction)
75+
expect(resultAction).toBe(originalAction)
76+
})
77+
7278
test('directly subscribing', () => {
7379
const listener = jest.fn((_: TestAction1) => {})
7480

0 commit comments

Comments
 (0)