Я пытаюсь создать функцию сохранения для моей маленькой игры (Javascript, Ax ios, Express, NodeJS MongoDB). Проблема в том, что я не совсем понимаю обещания ax ios и функции async / await или, точнее, не знаю, как внедрить их в мой код. Я хочу получить данные из моего mongodb и использовать их в переменной / методе, чтобы я мог изменить статистику игрока и т. Д. c. позже по мере необходимости. Я читал все возможные руководства и подобные посты, но я понятия не имею, почему они не работают для меня. Буду признателен за любую помощь!
После того, как возиться и попробовать все, что я нашел в Интернете, вот часть моего кода:
case "Load":
function getMySave () {
return axios.get("http://localhost:3000/save", {
params: {
name: username
}
})
.then(response => {
console.log(response.data)
return response.data
})
.catch(error => {
console.log(error);
return Promise.reject(error);
});
}
const waitIgetMySave = async () => {
const playerSave = await getMySave();
return playerSave;
};
playerSave = (waitIgetMySave());
console.log(playerSave)
player = new Player(username, playerSave.class, playerSave.health, playerSave.mana, playerSave.strength, playerSave.agility, playerSave.speed, playerSave.maxhp);
break;
}
Но этот код просто возвращает следующее:
Promise {: "pending"}
Object {_id: "5e9945f238a82e084c7cb316", имя: "Jesse", класс: "Rogue", .....}
Так что сам объект работает нормально, но я не могу применить его ни к чему, кроме функции ax ios .get. Это всегда дает мне ожидающий, обещание [Объект], неопределенный или такой, который я не могу использовать в моем объекте игрока или переменных. Я совершенно уверен, что я делаю что-то не так с функциями async / await, но, потратив несколько дней на решение этой проблемы, у меня действительно заканчиваются варианты.
И да, я посмотрел в [ Как я могу вернуть ответ от асинхронного вызова?
[1]: Как я могу вернуть ответ от асинхронного вызова? но это, кажется, быть для Ajax, и я просто не понимаю и не реализую их в своем собственном коде.