Отправка в редукционный магазин вне саги - PullRequest
0 голосов
/ 25 мая 2019

У меня есть сага, которая инициализирует поставщика аналитики, который живет полностью вне контекста редукции. Однако периодически 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 для этого?

1 Ответ

0 голосов
/ 25 мая 2019

Для любого периодического выполнения вашего аналитического кода вам потребуется создать обратный вызов для его выполнения, если проблема заключается в использовании рефакторинга, используйте сокеты канала событий для emit, on и получите ваши обратные вызовы.

...