Не может получить значение вне вызова Axios - PullRequest
0 голосов
/ 25 июня 2019

Я надеюсь, что вы могли бы помочь мне с проблемой, с которой я столкнулся с axios.

Я просто пытаюсь получить значение вне моего вызова, но я не могу заставить его работать,Это маленький кусочек кода:

 axios.get('/api/get-user').then(({ data }) => {
            this.user = data;
            console.log(this.user); //returns the correct data
            return this.user;
        });

        console.log(this.user); //returns null

Что здесь происходит?Я тоже попробовал с let self = this но безрезультатно.Я надеюсь, что вы, ребята, можете мне помочь!

1 Ответ

7 голосов
/ 25 июня 2019

Это проблема с async, вы вызываете console.log до того, как завершится запрос axios. Вот почему мы используем .then (res => {}).

Альтернативой может быть использование асинхронного ожидания.

Украсьте родительскую функцию с помощью async

const myFunction = async() => {
    const {data} = await axios.get('/api/get-user');
    this.user = data;
    console.log(this.user);
}

См. MDN для получения дополнительной информации, эта ссылка на примеры (которые я считаю наиболее полезными для понимания) https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function#Examples

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...