gpt4 book ai didi

javascript - RxJS:模拟 Angulars @Input() 绑定(bind)?

转载 作者:行者123 更新时间:2023-11-30 19:21:48 26 4
gpt4 key购买 nike

我是 Angular 8 和 RxJS 的新手,偶然发现了一个问题:

我制作了一个 Angular 应用程序,它在很大程度上依赖于外部加载的 THREE.js 场景。服务处理这些场景。

所以大多数时候没有 No HTML Template(仅通过 js 对象维护场景)=> 没有绑定(bind) ?

所以我在想...有没有办法使用 Rxjs 主题/可观察对象来实现类似 Input() 绑定(bind)的东西?

这就是我想要的

this.sub = myService.watch('window.deviceorientation')
.subscribe({next(x => { if(x) this.sub.unsubscribe; doStuff();})})

我想连续检查某个对象(任何真的),一旦它存在就得到通知(如果它已经存在则立即得到通知)。我敢打赌有一些奇怪的 RxJS 运算符组合可以做到这一点?

(所以基本上它有点像 AngularJS scope.$watch 但为了保持性能我当然会清理订阅。)

最佳答案

您可以使用 fromEvent rxjs 创建实用程序以达到预期的效果。

import { fromEvent } from 'rxjs';

orientation$ = fromEvent(window, 'deviceorientation');

const subscription = orientation$.subscribe((event)=>{
//do stuff
});

// when disponse is required
subscription.unsubscribe();

关于javascript - RxJS:模拟 Angulars @Input() 绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57377449/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com