- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,如果函数运行的时间足够长以触发在计时器上运行的 takeUntil 函数,我试图让 bool 值为真。
这是代码
start = this.http.get(environment.shochat_content_creator_set_valid_stream_start).pipe(
tap(() => console.log('Stream start'))
);
poll = this.http.get(environment.check_if_stream_is_active_on_mux).pipe(
tap(() => {
this.streamready = true;
return 0;
}
),
catchError(error => {
console.log(error);
return EMPTY;
})
);
startastream(){
const endtimer = timer(60000);
this.streampollsubscription = this.start.pipe(
switchMap(() => timer(0, 5000).pipe(
tap(() => console.log('Polling every 5s')),
mergeMap(() => this.poll)
)),
takeUntil(endtimer)
).subscribe();
}
本质上,如果 takeUntil 确实被解雇,我希望将 bool 值设置为 true。
timeout = true;
我一直在看这个stackoverflow帖子
最佳答案
您可以使用 merge运算符(operator)并重复使用您的 takeUntil
创建映射 true
的条件条件 ( endtimer
) 触发时的值:
const { Subject, merge } = rxjs;
const { takeUntil, mapTo } = rxjs.operators;
const source$ = new Subject();
const condition$ = new Subject();
// Use the merge to work around your completed observable
const result$ = merge(
// When your condition fires map this event to true
condition$.pipe(mapTo(true)),
// Your already existing pipe in wich the takeUntil lives
source$.pipe(
takeUntil(condition$)
)
)
result$.subscribe(console.log)
source$.next(1);
source$.next(2);
condition$.next();
source$.next(3);
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/6.5.3/rxjs.umd.min.js"></script>
timeout
的位置正在声明和设置。
关于javascript - 如何在 takeUntil rxjs 函数之后采取行动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66539763/
我想找到所有等于第一个7的项目: val list = List(1,4,5,2,3,5,5,7,8,9,2,7,4) 我的解决方案是: list.takeWhile(_ != 7) ::: List
我有一个服务调用,我每 5 秒检查它是否返回 true 或 false。 notifier(){ return Rx.Observable.of(true) // based on some c
来自 the docs for the TakeUntil operator (强调我的): The TakeUntil subscribes and begins mirroring the sou
向 TakeUntil 添加多个条件的最佳方法是什么?是否只是将 TakeUntil() 调用相互链接起来的问题? IObservable propertyToObserve = ... var ob
在下面的代码示例中,目的是通过向 Subject mid$ 发出 1 来阻止来自 second$ 的事件。 import { Subject, timer } from "rxjs"; import
我订阅了从 NgRx reducer 获取提供程序的订阅。我想用takeUntil()当最终返回一个包含内容的数组时自动关闭订阅: // Fetch providers this.store.pipe
这里没什么太严肃的,只是好奇。 我想举个例子,想出了这段代码: const { Observable, Subject } = Rx const timeout$ = new Subject() co
这里没什么太严肃的,只是好奇。 我想举个例子,想出了这段代码: const { Observable, Subject } = Rx const timeout$ = new Subject() co
我想根据两个条件停止可观察订阅: 时间(使用 import { timer } from 'rxjs/internal/observable/timer'; ) 或 执行状态(使用您将在下面看到的请求
我正在尝试在可观察对象上实现一个辅助方法,该方法返回一个新的可观察对象,在达到超时之前只发出值: implicit class ObservableOps[T](obs: Observable[T])
我想在触发 takeUntil 运算符时执行一个函数(在 ajaxObservable 之外)。 In this way被立即触发,因为我调用了 observer.complete(),但如果我不调用
以下代码定义了我想要的行为(有效)。仅当鼠标按下时才会触发 mousemove 事件。 Rx.Observable.fromEvent(window,"mouseup") .subscribe(
我想使用“takeUntil”运算符以声明式方式取消订阅。但这基本上是行不通的。无论如何我都可以看到控制台输出。 const unsubscribe = new Subject(); function
我有一个未知大小的用户列表。我想要的是查询 first 30 并更新 UI。然后我想通过以 100 为步长的偏移量来查询所有其他用户,直到我得到最后一批用户 - 我应该在这里使用 takeUntil
是否有可能在 takeUntil 运算符中发出满足条件的项目? 最佳答案 嗯,我不确定我是否理解你的问题。是这样的吗? @Test public void tesTakeUntil() { L
我有以下倒计时: userClick=new Subject() resetCountdown(){this.userClick.next()} setCountDown() { let co
因此,如果函数运行的时间足够长以触发在计时器上运行的 takeUntil 函数,我试图让 bool 值为真。 这是代码 start = this.http.get(environment.shocha
我在听 mousemove事件直到mouseup .我正在做 takeUntil . 我的代码: const onMouseMove = fromEvent(window, "mousemov
我有一个简单的 Rxjs 计时器,它会一直运行直到通知程序发出一些东西,直到这里非常基本。 enum TimerResult = { COMPLETE, ABORTED, SK
目前我正在使用 takeWhile (\x -> x /= 1 && x /= 89) l 从列表中获取最多为 1 或 89 的元素。但是,结果不包括这些标记值。 Haskell 是否有一个标准函数可
我是一名优秀的程序员,十分优秀!