У меня есть сага, которая инициализирует поставщика аналитики, который живет полностью вне контекста редукции. Однако периодически Redux отправляет обновленный токен аутентификации этому провайдеру аналитики.
(Да, я знаю, что аналитический код, вероятно, должен существовать в потоке саги, но поверьте мне, я обдумал это, и что рефакторинг сейчас невозможен)
function* setupAnalyticsProvider(response: any): any {
// get some global session data
setupAnalytics(data)
}
export function* refreshTokenIfNecessary() {
// syncs new JWT token with redux state
updateAnaltyicsProviderWithNewToke(token)
}
Проблема в том, что я хочу, чтобы код аналитики периодически запрашивал обновление токена. Для этого я хочу передать обратный вызов, который позволяет коду Google Analytics отправлять действие для запуска саги refreshTokenIfNesscary ().
function* setupAnalyticsProvider(response: any): any {
// get some global session data
setupAnalytics(data)
setAnaltyicsRefreshCallback(() => {
// Dispatch action
})
}
Есть ли способ подключиться к способу отправки в магазин или, возможно, использовать Saga-Channels для этого?