Я пытаюсь передать два значения функции из двух асинхронных функций, и я не уверен, как действовать. Вот код:Как передать параметры из функции async в javascript?
var btcPriceInUSD;
var priceExchangeMXN;
var btcLink = "https://blockchain.info/ticker";
var exchangeRateLink = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20%28%22USDMXN%22%29&env=store://datatables.org/alltableswithkeys&format=json";
//Get btc price in USD
$.getJSON(btcLink, function(btcData)
{
btcPriceInUSD = btcData.USD.last;
//document.write(btcPriceInUSD);
});
//Get current USD/MXN exchange rate
$.getJSON(exchangeRateLink, function(exchangeData)
{
priceExchangeMXN = exchangeData.query.results.rate.Rate;
//document.write(priceExchangeMXN);
});
//Convert btc price to MXN
function convertToMXN(btc,toMXN){
var result = parseFloat(btc) * parseFloat(toMXN);
document.write(result);
}
convertToMXN(btcPriceInUSD,priceExchangeMXN)
Я знаю, что вопрос в том, что я называю функцию за пределами асинхронных них, так что не ПОЛУЧАТЬ число, и это дает мне NAN (не число), но я не Не знаю, как правильно передать те два параметра, которые извлекаются в разных функциях, возможно ли комбинировать btcPriceInUSD и priceExchangeMXN в одном и называть его оттуда?
Заранее благодарен!
Вы можете захотеть взглянуть на обещания и JQuery.deffered объект. – Kodz
Два первых ответа здесь объясняют решения в хорошем смысле: http://stackoverflow.com/questions/14031421/how-to-make-code-wait-while-calling-asynchronous-calls-like-ajax – Kodz