Почему при promise в конструкторе не видно других методов?

Такие дела.

Есть класс Letter
class Letter {
  constructor () {
    return new Promise(resolve => {
      init().then(_ => {
        resolve()
      });
    });
  }

  // инициализация
  init () {
    return new Promise(resolve => {
      // всякие скрипты
      resolve()
    });
  }

  // старт каки-либо скриптов
  start () {
    // скрипты
  }
}


И вот создается несколько таких объектов из этого класса, но в дальнейшем я не могу запустить метод start() у объектов, хотя до добавления промисов - все работало.
В чем может быть проблема и как можно обойти?
  • Вопрос задан
  • 171 просмотр
Решения вопроса 3
Потому что ты в конструкторе возврашаешь new Promise
Конструктор не должен возвращать ничего. Вот пример без промиса и тоже выдает далеко не инстанс
https://jsfiddle.net/9aomzdkg/
Ответ написан
Комментировать
Negwereth
@Negwereth
lvivcss.com.ua
Потому что вместо экземпляра класса ты возвращаешь из конструктора промис.
Ответ написан
Комментировать
@Coder321
И как дальше вы собираетесь пользоваться этим экземпляром класса?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы