- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想通过 RxJS 制作 SR 锁存器。它应该采用 2 个流(#1 和 #2)并且仅当 #1 发出某些东西时才发出。
然后它应该忽略 #1 并听取 #2 直到它发出一些东西。然后它应该“重置”(编辑:意味着停止发出 observables,但保持订阅)并开始收听 #1。
我做了一个快速的 jsfiddle:https://jsfiddle.net/fczjusqn/11/有这个错误 - 如果你按几次开始,它会让间隔开始几次。
这是在我的真实应用程序中使用有点复杂的设置逻辑模拟可暂停进程。
必填代码:
// const start$ = ...
// const stop$ = ...
start$.pipe(
flatMap(() => {
// some setup logic...
// ...creating another stream...
// ...still setting up...
return Rx.interval(1000)
.pipe(
takeUntil(stop$)
)
})
).subscribe(() => console.log('interval'))
最佳答案
我建议创建一个 input$
observable,它只触发从开始到停止或停止到开始的变化值:
const start$ = Rx.fromEvent(document.querySelector('#start'), 'click').pipe(op.mapTo(true));
const stop$ = Rx.fromEvent(document.querySelector('#stop'), 'click').pipe(op.mapTo(false));
const input$ = Rx.merge(start$, stop$).pipe(op.distinctUntilChanged());
这样,当您多次单击开始或停止时,它将被简单地忽略。使用此可观察对象,您可以简单地使用流,就像您已经在使用它一样。
关于javascript - 如何通过 RxJS 6 制作 SR Latch?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51226667/
一 点睛 若干个线程并发执行某个特定的任务,然后等到所有的子任务都执行结束后在统一汇总,比如用户想要查询自己三年以来银行账户的流水,为了保证运行的数据库的数据量在一个恒定的范围之内,通常数据只会保存一
一 点睛 若干个线程并发执行某个特定的任务,然后等到所有的子任务都执行结束后在统一汇总,比如用户想要查询自己三年以来银行账户的流水,为了保证运行的数据库的数据量在一个恒定的范围之内,通常数据只会保存一
一 点睛 对 Latch 设计模式增加超时功能 二 实战 1 Latch package concurrent.latch; import java.util.concurrent.TimeUnit
我有以下代码对应于 Excel 中的 VBA 程序中的三个 ToggleButtons。单击一个按钮时,应该保持“按下”状态,而其他两个按钮应该“释放”。但是,使用我拥有的代码,我必须单击一个按钮两次
我试图在我的程序中使用 boost::latch 来阻止等待,直到所有线程完成或超时。我的代码如下。 ctpl是从https://github.com/vit-vit/CTPL采用的线程池库. #in
当我为一个 api 运行 import.io 示例时,比如官方 api 文档,我得到了这个错误。 此外,我输入'''pip install latch'''没有名为 latch in pips 的模块
提议包含在 C++14(又名 C++1y)中的是一些新的线程同步原语:锁存器和屏障。提案是 N3600: C++ Latches and Barriers N3666: C++ Latches and
我最初有以下代码: Boolean successCheckPoint = false; Boolean failureCheckPoint = false;
我想要实现的是暂停线程并等到 doSomeProcess() 被调用后再继续。但是由于一些奇怪的原因,整个过程卡在了 await 中,永远不会进入 Runnable.run。 代码片段: final
这个问题与我在 Java 并发主题中的作业有关。我的任务是生成新线程并通过给定的 concurrencyFactor 限制它们。也就是说,继续分派(dispatch)新线程,直到 Activity 线
我最近听说了新的 C++ 标准特性,它们是: std::latch std::barrier 我无法弄清楚,在哪些情况下它们是适用的并且彼此有用。 如果有人能举出一个例子来说明如何明智地使用它们中的每
我想通过 RxJS 制作 SR 锁存器。它应该采用 2 个流(#1 和 #2)并且仅当 #1 发出某些东西时才发出。 然后它应该忽略 #1 并听取 #2 直到它发出一些东西。然后它应该“重置”(编辑:
我正在阅读 java.util.concurrent API , 并发现 CountDownLatch:一种同步辅助工具,允许一个或多个线程等待,直到其他线程中正在执行的一组操作完成。 CyclicB
从文档中可以很清楚地看出它们之间的区别在于 std::barrier可以多次使用 std::latch只能使用一次。 在我看来,std::latch 只是 std::barrier 的一个特例,它添加
我听说锁存器和触发器之间的主要区别在于锁存器是异步的,而触发器是边沿触发的,这是有道理的。但是当我查看他们的shematic时,它们看起来几乎一样。 这是我能理解的一本书中的锁扣设计。 但这是我在各种
我已经阅读了数据表和谷歌,但我仍然不明白。 就我而言,我将 PIC18F26K20 的 PIN RC6 设置为 INPUT 模式: TRISCbits.TRISC6 = 1; 然后我用 PORT 和
我看到一个 stackoverflow 成员建议使用 Thread.join() 让一个“主”线程等待 2 个“任务”线程完成。 我会经常做一些不同的事情(如下所示),我想知道我的方法是否有任何问题。
在什么情况下我们应该使用“Latch until release”而不是“Switch until release”? 根据 LabVIEW 2011 Help : Latch until relea
因为我是 VHDL 的初学者,所以互联网上的所有答案都不适合我。 我正在使用按钮和 LED 在 vhdl 中制作密码界面。我的程序按预期正确模拟。 基本上,我希望 LED 在输入错误密码时闪烁,但在输
Time-out occurred while waiting for buffer latch type 2 for page (1:1535865), database ID 6. 这是我在尝试创
我是一名优秀的程序员,十分优秀!