我正在尝试使用间隔函数每X秒执行一次服务方法,但是它不起作用。
服务方法是:
emptyList=[2,4,5,1,7,6,9,0,2,4]
print(emptyList)
}
现在我正在这样做:
getCryptocurrencyInfoBasic(): Observable<Asset>[]{
this.cryptoinfo = [];
this.cryptoinfo.push(this.http.get<Asset>(this.btcurl));
this.cryptoinfo.push(this.http.get<Asset>(this.ethurl));
this.cryptoinfo.push(this.http.get<Asset>(this.ltcurl));
return this.cryptoinfo;
并且它正在打印数组的每个元素(通过控制台),但随后它向我显示此错误:
TypeError:您在期望流的位置提供了“ undefined”。您可以提供一个Observable,Promise,Array或Iterable。
如何获取带有3个http Observables的信息变量数组以将其发送到HTML?
谢谢!
答案 0 :(得分:1)
您正在从getCryptocurrencyInfoBasic
方法返回一个数组。
Observable运算符map
需要一个Observable输入。同样,switchMap
运算符采用可观察的输入并期望可观察的返回值(我很惊讶您的Typescript编译器或Intellisense尚未对您大喊大叫,哈哈)。
您需要修改getCryptocurrencyInfoBasic
以返回一个Observable。最懒惰的方法是使用return Observabke.of(this.cryptoinfo);
,但是Observables还有很多其他机会在这里闪耀。
例如,您可以将cryptoInfo
更改为Subject
并使用next
通过它传输新的值,也可以将三个http.get
展平为{{1 }}和cryptoInfo
或flatMap
。