Middleware duduk di antara dispatch action dan action mencapai reducer, memungkinkan Anda untuk menangkap actions guna menangani side effects (async API calls, logging) — yang tidak boleh dilakukan reducers karena mereka harus tetap pure. Thunks adalah middleware paling umum, yang memungkinkan logika async.
Di mana middleware berada
dispatch(action) → [ middleware 1 → middleware 2 → ... ] → reducer → store
(can inspect, modify, delay, or stop actions; do side effects)
