Rxjs 如何使用redux observable epic测量两个动作之间的持续时间?

Rxjs 如何使用redux observable epic测量两个动作之间的持续时间?,rxjs,redux-observable,Rxjs,Redux Observable,我试图使用redux observable epic来测量两个动作的持续时间 有一个答案与此相关,但在我的情况下,它并没有真正的帮助。 如果有人能帮忙,我将不胜感激。试试看——它测量两次排放之间的时间 要测量第一次开始和下一次结束之间的时间: .pipe( distinctUntilChanged(), 时间间隔(), 过滤器(({value})=>value!==START\u事件), 映射(({interval})=>interval) ) 更新 要测量最近的开始和随后的结束之间的时间

我试图使用redux observable epic来测量两个动作的持续时间

有一个答案与此相关,但在我的情况下,它并没有真正的帮助。

如果有人能帮忙,我将不胜感激。

试试看——它测量两次排放之间的时间

要测量第一次
开始
和下一次
结束
之间的时间:

.pipe(
distinctUntilChanged(),
时间间隔(),
过滤器(({value})=>value!==START\u事件),
映射(({interval})=>interval)
)

更新

要测量最近的
开始
和随后的
结束
之间的时间:

.pipe(
时间间隔(),
成对(),
过滤器(([第一,第二])=>
first.value==开始事件
&&second.value==结束事件
),
映射(([,秒]=>second.interval)
)


希望这有帮助

谢谢你的提示。你能举个有效的例子吗?:)@LinShen更新了一个示例
distinctUntilChanged
若要忽略多个开始,请使用
filter
仅输出开始-结束序列您的示例非常有用!我还发现,在您的第一个示例中,如果我们交换“distinctUntilChanged()”和“timeInterval()”的顺序,它也可以从最新开始计算持续时间。@LinShen继续实验!此外,请确保针对更多事件测试您将使用的代码。非常感谢你!
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.
*/