第一天学习JS。任务:以美元解析比特币汇率,以卢布解析美元汇率,将值相乘。
问题是调用Btc2Rub()函数时,出现“未知变量”错误,但这是合乎逻辑的,因为 我在函数中声明了一个变量。
我试图为 btccourse 和 usdcourse 声明“全局变量”,希望它们会在函数中被覆盖,然后相乘。如此声明:在代码的第一行var btccourse = 0; ,但变量未被覆盖,保持为空。
我怎么解决这个问题?
$(document).ready(function() {
getBtc();
getUsd();
Btc2Rub();
});
function getBtc() {
$.get(
"https://api.coindesk.com/v1/bpi/currentprice.json",
function(data) {
data = JSON.parse(data);
btccourse = data.bpi.USD.rate_float;
console.log("BTC = " + btccourse + " Usd");
}
)
};
function getUsd() {
$.get(
"https://www.cbr-xml-daily.ru/daily_json.js",
function(data) {
data = JSON.parse(data);
usdcourse = data.Valute.USD.Value;
console.log("USD = " + usdcourse + " Rub");
}
)
};
function Btc2Rub() {
rubcourse = btccourse * usdcourse;
console.log(rubcourse)
}
要发出异步 HTTP 请求,使用$.ajax方法,它是所有使用
Ajax发送的请求的基础jQuery。jqXHR该方法返回的对象$.ajax实现了一个接口Promise,该接口为其提供了所有属性、方法和行为Promise。表示异步操作成功或失败的结果。$.when方法接受任意数量的Promise,并返回一个Deferred对象。处理程序
done将收到每个承诺的结果,在您的问题中,有两个结果。使用“糖”作为 的变体
async/await,以及通过try...catch.像这样的东西: