Как я могу измерить продолжительность между двумя действиями, используя наблюдаемую эпопею? - PullRequest
1 голос
/ 23 марта 2019

Я пытаюсь измерить продолжительность двух действий, используя эпопею, наблюдаемую редуксом.

Есть ответ, связанный, но это не очень помогает в моей ситуации. Как можно измерить длительность эпоса при завершении работы?

testeeEpic = action$ => action$.ofType('TEST_START', 'TEST_EMD')
  .pipe(
    // How to measure duration between 'TEST_START' and 'TEST_EMD'
  )

/*
`TEST_START` can be dispatched multiple times before `TEST_EMD`, 
duration between the lastest `TEST_START` and `TEST_EMD` is needed.
*/

Был бы признателен, если кто-то может помочь.

1 Ответ

1 голос
/ 23 марта 2019

Попробуйте timeInterval - измеряет время между двумя выбросами.

Для измерения времени между первым START и следующим END:

.pipe(
  distinctUntilChanged(),
  timeInterval(),
  filter(({ value }) => value !== START_EVENT),
  map(({ interval }) => interval)
)

Промежуток времени между первым START и следующим примером КОНЕЦ .

ОБНОВЛЕНИЕ

Чтобы измерить время между самой последней START и следующей END:

.pipe(
  timeInterval(),
  pairwise(),
  filter(([first, second]) =>
    first.value === START_EVENT
    && second.value === END_EVENT
  ),
  map(([, second]) => second.interval)
)

промежуток времени между последним START и следующим примером END .

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...