2017-10-05 126 views
1

我有一個簡單的單頁網絡應用程序。它從兩個不同的API獲取貨幣數據(以美元爲單位),成功檢索後,promise已解決,一些計算可以計算出匯率。貨幣XE計算

我試圖找到一個乾淨的方式,然後翻轉到匯率即。

默認:顯示英鎊/比特幣 切換按鈕:顯示比特幣/ GBP

您的任何幫助,將不勝感激。

該應用程序使用React構建,但這應該會有所作爲。

App.js

axios.all([this.getGBP(), this.getBitcoin()]) 
    .then(axios.spread((gbpVal, bitcoinVal) => { 
    const gbp = xVal.data.rates.GBP; 
    const bitcoin = yVal.data.bpi.USD.rate_float; 
    const xOfy = this.xOfy(gbp, bitcoin); 
    const yOfX = this.yOfX(bitcoin, gbp); 
    })); 


getGBP() { 
    // returns gbp from api 
} 

getBitcoin() { 
    // returns bitcoin from api 
} 

xOfy(unit, value) { 
    return 1/(unit * value); 
} 

yOfX(unit, value) { 
    return unit * value; 
} 

請求#1 - 給出USD /比特幣

{ 
    "bpi":{ 
     "USD":{ 
     "code":"USD", 
     "symbol":"$", 
     "rate":"4,346.6913", 
     "description":"United States Dollar", 
     "rate_float":4346.6913 
     } 
    } 
} 

請求#2 - 給出GBP/USD

{ 
    "base": "USD", 
    "rates": { 
    "GBP": 0.762441, 
    } 
} 

回答

1

我認爲你正在沿着寫入類型的行。如果你專注於使你的功能更純粹一點,它們會爲你工作。另外,如果這樣可以讓它變得更容易,那麼api可以將這兩個值返回到GBP,而不是USD?

+0

是的,這是我最後採取的方法(使用較少的特定功能)。不幸的是,由於API設置,我無法獲得GBP值。 – Liondedan

+0

噢 - 對不起,我剛剛看到它需要付費訂閱才能獲得/ GBP值。真高興你做到了。 – user1389646