Я прочитал это Доступ к состоянию из наблюдаемой в эпоксиде эпопеи , но это не помогает мне найти ответ.
Я использую наблюдаемую избыточность в моем приложении реагировать на избыточность, у меня есть эпопея, которая вызовет вызов API, код как показано ниже:
const streamEpicGet = (action$: Observable<Action>, state$) => action$
.pipe(
ofType(streamActions.STREAM_ITEM_GET),
withLatestFrom(state$),
mergeMap(([action, state]) => {
return observableRequest(
{
failureObservable: error => {
const actions = []
return actions
},
settings: {
body: queryParams, // I can access to the state data here to organize the query params I need for calling the API
url: '/path/to/api',
},
successObservable: result => {
const { pushQueue } = state
// here I want to access to the latest state data after API response
}
})
}),
)
В приведенном выше коде я использую withLatestFrom(state$)
, поэтому я могу получить доступ к самым последним данным при выполнении кода оператора mergeMap
, то есть я могу получить доступ к данным состояния здесь, чтобы организовать параметры запроса для API.
Однако в течение времени после отправки запроса API и до того, как он отвечает, происходят другие действия, которые меняют состояние pushQueue
, поэтому после ответа API я хочу прочитать последнее состояние pushQueue
в мой successObservable
обратный вызов.
Моя проблема в том, что я всегда получаю те же данные о состоянии, что и при подготовке параметра запроса, т. Е. Я не могу получить последние данные о состоянии после ответа API в successObservable
обратном вызове.
Дайте мне знать, если вам нужна дополнительная информация, спасибо.