#javascript #axios #phaser-framework
#javascript #axios #phaser-framework
Вопрос:
Я создал небольшой запрос GET в вызове axios внутри моей игры Phaser 3, просто чтобы проверить, работает ли он:
axios.get('/fetch-new-sudoku')
.then(function (response)
{
axiosExperiment = response.data.message;
console.log(response.data, axiosExperiment);
})
.catch(function (error)
{
console.log(error);
})
.then(function ()
{
// always executed
});
Внутри моего контроллера Laravel 7 у меня есть следующее:
public function APIFetchNewSudoku()
{
$data['message'] = "Success";
return response()->json($data);
}
Когда я открываю проверку браузера, я вижу, что запрос обычно запускается с сообщением «Успех», отображаемым в консоли. Когда я пытаюсь назначить ответное сообщение с данными для var axiosExperiment, это вообще не работает? Ранее в моем коде я присвоил переменной axiosExperiment пустое строковое значение, вот так:
var axiosExperiment = "";
Я хотел бы иметь возможность назначить сообщение с ответными данными для axiosExperiment, но на самом деле не знаю, что я делаю не так? Значение переменной остается равным «»?
Ответ №1:
У вас недостаточно информации о том, как вы используете axiosExperiment Я предполагаю, что вы вызываете axiosExperiment до того, как ваше обещание будет выполнено
попробуйте установить текст (axiosExperiment? axiosExperiment: «) при обновлении phaser ()
create(){
var self = this
this.axiosExperiment = ''
this.text = this.add.text(0,0, axiosExperiment)
axios.get('/fetch-new-sudoku')
.then(function (response)
{
self.axiosExperiment = response.data.message;
console.log(response.data, axiosExperiment);
})
}
update(){
this.text(this.axiosExperiment)
}