Как инициализировать атрибуты класса значением Promise функции

Помогите справиться со следующей проблемой: Есть класс метод которого Initialize() вызывает Promise функцию результат которой я хочу записать в атрибуты класса

module.exports = class MyPokedex {
    constructor() {
        const Pokedex = require('pokedex-promise-v2');
        this._P = new Pokedex();
        this.total = 0;     // How many total pokemons
        this.names = [];    // Name
        this.promiseResolved = false;
    }

    async Initialize() {
        let interval = {
            limit: 1,
            offset: 0
        }
        const self = this;    

        self.promiseResolved = false;
        // Пытаюсь сделать await но эффекта нет ...
        await this._P.getPokemonsList(interval)
        .then( function(response) {
            self.total = response.count;
            for(let line of response.results)
                self.names.push(line.name);           
            self.promiseResolved = true;
        }, (err) => console.log("Промис выполнен с ошибкой", err));

        console.log('finished');
        console.log('this.total', this.total);
        console.log('this.names', this.names.length);
        console.log('this.promiseResolved', this.promiseResolved);
    }
}

// *** pdemo.js ***************************************

const MyPokedex = require('./pclass');
let myP = new MyPokedex();
console.log(myP.promiseResolved);
console.log('Main Initialize');
myP.Initialize();
console.log('Main Initialize finished');
// while (!myP.promiseResolved)
  console.log(myP.promiseResolved);
  console.log(myP.total);

При выполнении node pdemo в консоли вижу следующее:

C:\nodejs\MyPrj\mobx-master>node pdemo
false
Main Initialize
Main Initialize finished
false
0
finished
this.total 964
this.names 2
this.promiseResolved true

Получается что-то странное ?! Вроде бы await срабатывает, но почему тогда внутри pdemo.js значения атрибутов 0 и false (не инициализированы) ?


Ответы (0 шт):