0
問題是,我的函數不返回正確的值。我認爲原因是,因爲回調在返回值後加載。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