我想从数组创建一个observable,但每次都会收到错误(元组类型元素列表不能为空)。我已经尝试了很多,但它仍然没有用。
listdonationsHistory(): Observable<[]> {
const donationsHistory = [
{
id :1,
type :"Aeri",
amount: 200,
frequency: 'monthly',
date: '17-09-2017',
account:'ATYTYTYY6778'
},
{
id :2,
type :"Aeri",
amount: 200,
frequency: 'monthly',
date: '17-09-2017',
account:'ATYTYTYY6778'
}
];
return Observable.from(donationsHistory);
}
答案 0 :(得分:2)
问题在于函数的签名:
listdonationsHistory(): Observable<[]>
具体来说,它是返回类型。这就是空元组的位置。
要将返回类型声明为发出任意数组的observable,可以使用:
listdonationsHistory(): Observable<any[]>
但是,在实现中,您调用Observable.from
并且返回的observable将分别发出数组元素 - 在这种情况下,返回类型应为Observable<any>
。
如果你想要一个会自己发出数组的observable,你应该使用Observable.of
而不是Observable.from
。
答案 1 :(得分:0)
我可以在那里看到问题。返回类型不是数组,而是对象。如果您希望observable是一个数组,请使用 Observable.of 而不是 Observable.from
试试:
interface Somereturn {
id: number;
}
listdonationsHistory(): Observable<Somereturn> {
return Observable.from([{id: 2}, {id: 3}]);
}
listdonationsHistory(): Observable<Somereturn[]> {
return Observable.of([{id: 2}, {id: 3}]);
}