Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从数组typescript观察_Javascript_Typescript_Rxjs_Observable - Fatal编程技术网

Javascript 从数组typescript观察

Javascript 从数组typescript观察,javascript,typescript,rxjs,observable,Javascript,Typescript,Rxjs,Observable,我想从数组创建一个可观察的,但每次都会出现错误(元组类型的元素列表不能为空)。我试了很多,但还是不起作用 listdonationsHistory(): Observable<[]> { const donationsHistory = [ { id :1, type :"Aeri", amount: 200, frequency: 'monthly', d

我想从数组创建一个可观察的,但每次都会出现错误(元组类型的元素列表不能为空)。我试了很多,但还是不起作用

 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);
 }
listdonationsHistory():可观察{
常量捐赠历史=[
{
id:1,
类型:“Aeri”,
金额:200,
频率:'每月',
日期:2017年9月17日,
账户:'ATYTYY6778'
},
{
id:2,
类型:“Aeri”,
金额:200,
频率:'每月',
日期:2017年9月17日,
账户:'ATYTYY6778'
}
];
从(捐赠历史)中可观察到的回报;
}

问题在于函数的签名:

listdonationsHistory():可观察
具体来说,它是返回类型。这就是空元组所在的位置

要将返回类型声明为发出任意数组的可观察对象,可以使用:

listdonationsHistory():可观察
但是,在实现中,您调用的是
Observable.from
,返回的Observable将分别发出数组元素-在这种情况下,返回类型应为
Observable


如果您想要一个可观察到的将发射阵列本身,您应该使用
observable.of
而不是
observable.from
函数的签名中存在问题:

listdonationsHistory():可观察
具体来说,它是返回类型。这就是空元组所在的位置

要将返回类型声明为发出任意数组的可观察对象,可以使用:

listdonationsHistory():可观察
但是,在实现中,您调用的是
Observable.from
,返回的Observable将分别发出数组元素-在这种情况下,返回类型应为
Observable


如果你想要一个能发射阵列本身的可观测的,你应该使用
observable.of
而不是
observable.from
,我可以看到一个问题。返回类型不是数组,而是对象。如果您想让可观察的对象成为数组,请使用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}]);
    }
接口返回{
id:编号;
}
listdonationsHistory():可观察{
返回可观察的。from([{id:2},{id:3}]);
}
listdonationsHistory():可观察{
返回可观测值([{id:2},{id:3}]);
}

我发现那里有个问题。返回类型不是数组,而是对象。如果您想让可观察的对象成为数组,请使用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}]);
    }
接口返回{
id:编号;
}
listdonationsHistory():可观察{
返回可观察的。from([{id:2},{id:3}]);
}
listdonationsHistory():可观察{
返回可观测值([{id:2},{id:3}]);
}

出现了什么错误?尝试
observatable.create(donationsHistory)
它不起作用,仍然是同一个错误。@凯文,元组类型元素列表不能为空你得到了什么错误?尝试
observatable.create(donationsHistory)
它不起作用,仍然是同一个错误。@kevin,元组类型元素列表不能为空,这是更可取的,
any[]
Array
?它们是相同的,不同的人有不同的观点。只要可能,我更喜欢前者。@cartant,我也尝试过,但它也不起作用。在这种情况下,我也没有得到一个具体的错误。对此我只得到运行时错误。我已经更新了答案-不清楚您是希望返回的可观察对象发出数组本身,还是单独发出数组的元素。答案现在解释了调用
Observable.from
Observable.of
之间的区别。哪个更可取,
any[]
Array
?它们是相同的,不同的人有不同的观点。只要可能,我更喜欢前者。@cartant,我也尝试过,但它也不起作用。在这种情况下,我也没有得到一个具体的错误。对此我只得到运行时错误。我已经更新了答案-不清楚您是希望返回的可观察对象发出数组本身,还是单独发出数组的元素。答案现在解释了调用
Observable.from
Observable.of
之间的区别。我也尝试过Observable.of,但没有得到解决方案。是的,有一件事我没有使用接口。我也尝试过,但没有得到解决方案。是的,有一件事我没有使用接口。