@chelnokov_a

Как использовать свойство класса в методе если оно возвращается асинхонно?

Здравствуйте. Возникла проблема.

У моего класса есть свойство которое получается асинхронно.
И есть метод который использует это свойство.
Данный метод вызывается сразу после создания инстонса класса при загрузки страницы

class Favorite = {
    constructor(opt) {
        this.state = // получаем в результате промиса
    }

    nyMethod () {
         console.log(this.state)
    }
}


Выглядит это примерно так.

Как вы поняли я получаю в консоли undefined. Подскажите что я упускаю. Точнее я понимаю в чем проблема но как верно подойти к ее решению не знать) Спасибо
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
@chelnokov_a Автор вопроса
Разобрался.

Нужно отказаться от свойства this.state и получать state в отдельном методе который вернет промис. Например так

class Favorite = {
    constructor(opt) {
    }
    getState () {
        return state = // // получаем в результате промиса
    }
    nyMethod () {
        getState().then(state => {
            console.log(state)
        })
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы