我有一个简单的单页网页应用。它从两个不同的API获取货币数据(以美元为单位),成功检索后,promise
得到解决,一些计算计算出 GBP / Bitcoin 汇率。
我试图找到一种干净的方式然后转换到汇率,即。
默认值:显示英镑/比特币 切换按钮:显示比特币/英镑
非常感谢您的任何帮助。
该应用程序是使用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 - 提供美元/比特币
{
"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,
}
}
答案 0 :(得分:1)
我认为你正在使用写入类型的行。如果你专注于让你的功能更纯粹,它们将为你工作。另外,api可以返回这两个值而不是美元,如果这样可以更容易吗?