Задать вопрос
@pqgg7nwkd4

Как правильно унаследоваться от Promise?

Добрый день.

class MyPromise extends Promise {
	constructor(executor) {
		let cp = function (ok, fail) {
			// ничего не делаем, как-будто что-то дооолго грузим
		};
		super(cp);
	}
}

let p = new MyPromise(function (ok, fail) {  });

p.then(function () { });

В последней строчке возникает ошибка:
- В хроме: "Uncaught TypeError: Promise resolve or reject function is not callable"
- В фаерфоксе: "TypeError: A Promise subclass passed a non-callable value as the resolve function."

Вопрос: почему и как правильно сделать?
  • Вопрос задан
  • 361 просмотр
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
k12th
@k12th
console.log(`You're pulling my leg, right?`);
А зачем?

const p = new Promise((ok, fail) => {
    setTimeout(ok, 1000 * 3600)
});
Ответ написан
Комментировать
@vshvydky
я вот не понимаю , прошого вопроса с ответами не хватило что ли, теперь конкретно о твоем шедевре
ты передаешь в конструктор function (ok, fail) { } - он линкуется переменной executor
Далее ты передаешь в конструктор родительского класса функцию с 2 переменными, ok и fail, кстати их принято называть resolve , reject , ну да ладно. И что в этих двух переменных? Верно в них undefined.
Я все еще бьюсь одним вопросом, зачем ты занят этой ерундой? что пытаешься получить?
Я в прошлом оттвете показал тебе как объявить промис, но не вызывать его исполнение. Тебе этого было недостаточно? Решил мопед собирать?
Ответ написан
Ваш ответ на вопрос

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

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