我目前的输入内容如下
const config = {
'mainA': { sub1: { name: 'test1'}, sub2: { name: 'test2'}},
'mainB': { sub1: { name: 'test3'}, sub2: { name: 'test4'}}
};
我正在尝试编写一个函数(createCustomObservable),它将使用标准RsJS运算符创建一个observable,如下所示
var observable = createCustomObservable(config);
observable.subscribe((x) => console.log(x));
控制台输出应如下所示
{'mainA': 'test1'} -> {'mainA': 'test2'} -> {'mainB': 'test3'} -> {'mainB': 'test4'}
一系列具有单一属性的物体
有没有人知道如何使用RxJS运算符实现这一点?任何帮助将不胜感激。
答案 0 :(得分:2)
您尝试解决的问题的主要问题是遍历对象以获取包含" name"的所有对象。领域,并获得他们的价值。
没有Rx操作员自动执行此操作,因此要完成此任务,您只需使用id | column1 | column2 | timestamp
6 | 6 | 3 | 2016-09-27 00:20:20
9 | 9 | 3 | 2016-09-30 00:20:20
5 | 5 | 4 | 2016-09-25 00:20:20
3 | 3 | 4 | 2016-09-24 00:20:20
7 | 7 | 5 | 2016-09-28 00:20:20
8 | 8 | 5 | 2016-09-28 00:24:20
- https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/create.md
Rx.Observable.create
答案 1 :(得分:1)
我们可以通过Observable构造函数创建一个新的流,您必须手动调用next(),error()和complete()函数。
function createCustomObservable(config) {
return new Observable(
observer => {
try {
observer.next(config)
} catch(err) {
observer.error(err);
} finally {
observer.complete();
}
})
}
并以这种方式使用
var observable = createCustomObservable(config);
observable.subscribe((x) => console.log(x));