2017-10-17 19 views
0

配列上の別の観測値からObservableを単一の数値に戻そうとしています。私は配列を使って2つの値を調べ、計算をします。現在、私はPromiseを使用していますが、自分自身の理解のために、それがどのように行われているか知りたいと思います。戻り値Observable <[]>

は、どのように私はこれに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> { 
... 
} 

答えて

1

それはほとんどあなたがすでに約束してやっていたのと同じです。

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

     }); 

     } 
関連する問題