Проблема в том, что моя функция не возвращает правильное значение. Я думаю, причина в том, что обратный вызов загружается после возврата значения.Глобальная переменная функции JavaScript
Код:
function hexToBase58(inputNumber) {
var output = "";
$.getScript("JavaScript/biginteger.js", function(){
//hexToDecimal
var sum = new BigInteger();
for (var i = 0;i<inputNumber.length;i++)
{
sum = sum.multiply(new BigInteger(16)).add(new BigInteger(hexToDecimalChar(inputNumber.charAt(i))));
}
//decimalToBase58
var rest = new Array();
var base = new BigInteger(58);
var i = 0;
do
{
rest[i] = sum.remainder(base).valueOf();
sum = sum.divide(base);
i++;
}while(sum.valueOf() > 0)
for(var j=0;j<i;j++)
{
output = output + decimalToBase58Char(rest[i-j-1]);
}
console.log(output);
});
console.log(output);
return output;
}
Я получаю два выхода:
- ""
- "5KAvT6dYsRsGdZKQoh2tCLvoFanZhXcGZUwqNs3RtcsWMojkSnA"
"выход" является глобальной переменной, но функция делает не возвращать вторую строку, а первую. Я не знаю, как вернуть значение из внутренней функции в внешнюю.
Очень поздно, и я много пробовал. Я думаю, может быть, аякс может помочь. Но у меня нет опыта работы с ajax.
Вы делаете возвращение до '$ .getScript' заканчивается. '$ .getScript' - асинхронный. – Rudy