- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发现自己有一个值(value)观和可观察对象的混合对象。就像是:
const mixedObject = {
field1: "Hello",
field2: Rx.Observable.of('World'),
field3: Rx.Observable.interval(1000),
};
combineLatest
之类的事情的最佳方式是什么?在这个对象上获取一个普通对象流。
Rx.Observable.combineLatest(mixedObject).subscribe(plainObject => {
console.log(plainObject.field1, plainObject.field2, plainObject.field3);
// Outputs:
// > Hello World 0
// > Hello World 1
// > Hello World 2
});
最佳答案
您没有指定 field1 是否始终是一个值,而 field2 和 field3 是可观察的。我会尝试给出一个更通用的解决方案。
function mixedToSync(obj: any): Observable<any> {
return Observable.combineLatest(
Object.keys(obj).map((key: string) => {
let value = obj[key];
if(Observable.prototype.isPrototypeOf(value)){
return value.map(v => ({[key]: v}));
} else {
return Observable.of({[key]: value});
}
}))
.map(propsObservables => Object.assign({}, propsObservables));
}
mixedToSync(mixedObject).subscribe(v => console.log(v));
mixedToSync(mixedObject).subscribe(v => console.log(v.field1, v.field2, v.field3));
关于rxjs5 - RxJS combineLatest 在 Observables 的对象上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40582054/
使用运行 rxjs 迁移工具后 rxjs-5-to-6-migrate -p src/tsconfig.app.json 我现在收到一个 linting 错误: combineLatest is de
我遇到了 rxjs 和 combineLatest 方法的问题。我试图在 combineLatest 中调用 combineLatest 并且它不起作用,尽管它返回 Observable 对象。请帮助
如何通过combineLatest组合Observables。 mergeLatest 未定义 我正在使用 Angular js 7。我想 Marge 拖曳查询字符串参数,但是当我编写 obserab
我有 3 个事件需要合并,当其中一个被触发时,调用服务。我使用了 combineLatest,但只有当第一个事件被 filterChanged 触发时它才有效。 filterChanged 是一个本地
我很难理解为什么 combineLatest没有返回最新值。这个例子有点做作,但至少它说明了我的问题。注意 color 的值来自 combineLatest observable 返回先前的值,当 s
我有一个带有频繁值的流和一个带有较慢值的流。我想将它们组合起来,但只在较慢的一个发出时才发出一个值。所以combineLatest不起作用。 像这样: a1 a2 b1 (a2,b1) a3 a4 a
我有一些观察结果。我需要知道哪个触发了订阅。 Observable.combineLatest( this.tournamentsService.getUpcoming(),
我对以下重载感兴趣: public static IObservable> CombineLatest(this params IObservable[] sources); public stati
我想知道我的应用程序何时离线并恢复在线。我在 rxjs 中注册了以下事件: const online = Rx.Observable.fromEvent(window, 'online'); cons
如果我有两个 SignalProducers(实际上它们是 API 服务请求,所以它们只发送一次“下一个”),并将它们与 combineLatest 组合(因为我想在两者完成后关闭加载微调器),如果其
我有一个从后端获取数据的 Angular 解析器。我有以下调用要执行: GetProject(projectId): Observable GetSites(projectId): Observabl
我正在用 FLUTTER/DART 和 RXDART 做一个小项目。 部分代码如下: class RegisterBloc with UserValidator { final _username =
我正在尝试关注 this example 但在使用 combineLatest() 时遇到问题: Property 'subscribe' does not exist on type 'Operat
我需要将来自两个来源的数据合并为一个 res: {data1: any, data2: any}对象,我需要实现这个 即使其中一个源不发出任何值 这是我期望的结构: xxx ( source1
我有一个主页页面,用户在其中点击联系我即可重定向到联系页面: home.component.html Contact me home.component.ts: import { Compon
我想执行一些顺序代码,但我无法从 combineLatest 中提取数据 const { datosPersona, participante } = await combineLatest( t
我有两个 observable 想与 combineLatest 结合起来: const o1 = from(['a', 'b', 'c']); const o2 = of('content from
我需要在这个 combineLatest 中处理每个函数的错误场景。我会在下面添加代码 const combined = combineLatest( this.myservice1.fn1(pa
我有 3 个可观察的事件流 - 按日期顺序 -(主要事件、有关销售的事件和有关客户的事件) - 每个流都包含一种与各种车辆相关的事件,每个事件都有一个 vehicleID 和各种其他事件特性。事件可以
我需要一种方法将值从一个 observable 传递给两个函数,每个函数都接受一个值,每个函数依次返回一个 observable(只发出一个值,然后完成)。我希望 .combineLatest() 允
我是一名优秀的程序员,十分优秀!