У меня есть фикцию request.send();
, которая анализирует .json
файл, и получает credits
током steamid
Javascript JSON синтаксического анализа функция возвращает неопределенное значение
var request;
if (window.XMLHttpRequest) {
request = new XMLHttpRequest();
} else {
request = new ActiveXObject("Microsoft.XMLHTTP");
}
request.open('GET', './players.json');
request.onreadystatechange = function() {
if ((request.readyState === 4) && (request.status === 200)) {
var items = JSON.parse(request.responseText);
for(var i = 0; i < items.length; i++)
{
if(items[i].steamid == currentSteamID)
{
playerCredits = parseFloat(items[i].credits);
alert(playerCredits);
return playerCredits;
}
}
}
}
var playerCredits = request.send();
alert(playerCredits);
первого оповещения работает отлично:
Я хочу использовать кредиты позже, поэтому я назначил функцию переменной:
var playerCredits = request.send();
Но предупреждая playerCredits
дать мне это:
При поиске похожих вопросов я узнал, что мне нужно было использовать Ответный, я попытался сделать это:
var request;
if (window.XMLHttpRequest) {
request = new XMLHttpRequest();
} else {
request = new ActiveXObject("Microsoft.XMLHTTP");
}
request.open('GET', './players.json');
request.onreadystatechange = function(callback) {
if ((request.readyState===4) && (request.status===200)) {
var items = JSON.parse(request.responseText);
for(var i = 0; i < items.length; i++)
{
if(items[i].steamid == currentSteamID)
{
playerCredits = parseFloat(items[i].credits);
callback(playerCredits);
}
}
}
}
request.send(function() {
console.log(playerCredits);
});
Однако это ошибка я получаю:
Uncaught TypeError: callback is not a function
Я уверен, что я не использую Обратный вызов, как я должен , и теперь я вас спрашиваю:
Что нужно изменить для этого?
В вашем коде есть много несоответствий, вы, похоже, не знакомы с JavaScript. Я рекомендую вам найти точное значение важных ключевых слов, таких как Callback, XHR. Википедия - хорошее место для этого. Вероятно, я мог бы ответить, но сколько раз вы снова заходите? –