Return Observable<number> 来自另一个 Observable,对 Observable<[]> 进行计算

Return Observable<number> from another observable with a computation over a Observable<[]>

我正在尝试 return 从数组上的另一个可观察对象到单个数字的可观察对象。我使用数组查找两个值并进行计算。目前我正在使用一个很好的 Promise,但根据我自己的理解,我想知道它是如何完成的。

如何将以下代码转换为 return 一个 Promise

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));

        });

      }