У меня есть функция getHighScores
, которую я хочу зайти в файл JSON и получить объекты оценки для заданного game
, отсортировать их и вернуть верхние amount
из них.
Thisмой (неработающий) код:
function getHighScores(game, amount) {
var highScores = null;
fs.readFile('scores.json', 'utf8', function (error, data) {
var scoresObj = JSON.parse(data);
var gameScores = scoresObj.games[game];
sortedScores = gameScores.sort(compareScoreObjects);
highScores = sortedScores.slice(0, amount);
});
return highScores;
}
console.log(getHighScores('snake', 10));
Это логирование null
, потому что highScores
недоступен в рамках функции обратного вызова для fs.readFile
.
Есть лиЛюбой способ сделать это, поддерживая логику моего кода - где я могу просто getHighScores
вернуть данные?Если нет, то как я должен думать об этой проблеме?