Использование библиотеки Axios в игре Phaser 3.24.1

#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)
}