我有一个返回对象数组的方法
我需要按照一定的标准对其进行过滤,然后创建一个新的对象数组,将数据转换为另一个模型
然后返回结果数组,然后订阅
public getTestWithPare(): Observable<Array<TestModel>> {
return this.http.getTests().pipe(
flatMap(rate => rate), // splitting array
filter(test => !test.isDone),
map(test => {
const testPare = new TestModel();
testPare.key = `${test.id}/${test.name}`;
if (test.type === 'new') {
testPare.finish = test.value;
testPare.show = true;
} else {
testPare.start = test.value;
testPare.hide = true;
}
return testPare;
}),
concatAll(),
toArray()
);
}
调用该方法后,出现错误:
您提供了一个无效的对象,该对象应在其中流。您可以 提供一个Observable,Promise,Array或Iterable。
我不明白哪里出了问题
我想在输出端得到一个对象数组
大约采用以下格式:['key': {key: '1 / t', finish: 7, show: true}, ...]
答案 0 :(得分:1)
Rxjs在这里过大(仅当您有大数组并且您不想一次性处理它时),用户数组方法
const testToTestPare = test => {
/* If you don't need TestMode, create an empty object const testPare = {} */
const testPare = new TestModel();
testPare.key = `${test.id}/${test.name}`;
if (test.type === 'new') {
testPare.finish = test.value;
testPare.show = true;
} else {
testPare.start = test.value;
testPare.hide = true;
}
return testPare;
};
public getTestWithPare(): Observable<Array<TestModel>> {
return this.http.getTests().pipe(
map(tests => tests.map(testToTestPare)),
);
}