返回Observable 从另一个可观测值与一个可观测的计算<[]>
问题描述:
我想从一个数组上的另一个observable返回一个Observable。我使用该数组查找两个值并进行计算。目前我正在使用一个很好的承诺,但为了我自己的理解,我想知道它是如何完成的。返回Observable <number>从另一个可观测值与一个可观测的计算<[]>
如何转换下面的代码返回一个无极
convertToCurrency(fromCurrency: string, toCurrency: string) {
return new Promise((resolve, reject) => {
this.getQuotes()
.subscribe(quotes => {
let usdFrom = quotes.filter(val => {
return val.code.substring(3, 6) == fromCurrency;
})[0].quote;
let usdTo = quotes.filter(val => {
return val.code.substring(3, 6) == toCurrency;
})[0].quote;
let converted = usdTo/usdFrom;
resolve(converted);
}, error => reject());
});
}
到这一点:
convertToCurrency(fromCurrency: string, toCurrency: string): Observable<number> {
...
}
答
这几乎相同,您已经有一个承诺这样做。
convertToCurrency(fromCurrency: string, toCurrency: string): Observable<number> {
return new Observable<number>(observer => {
this.getQuotes()
.subscribe(quotes => {
let usdFrom = quotes.filter(val => {
return val.code.substring(3, 6) == fromCurrency;
})[0].quote;
let usdTo = quotes.filter(val => {
return val.code.substring(3, 6) == toCurrency;
})[0].quote;
let converted = usdTo/usdFrom;
observer.next(converted);
}, error => observer.error(error));
});
}