@dimochkapolyakov
Делаю свои проекты

В JS коде ошибка, Что не так?

в строчке "reject( new Error('mom is not happy') );" возникает ошибка. Что не тек. Я не понимаю.

'use strict';

		var isMomHappy = false;

		var willIGetNewPhone = new Promise(

		    function (resolve, reject) {

		        if (isMomHappy) {
		            var phone = {
		                brand: 'Samsung',
		                color: 'black'
		            };
		            resolve(phone);
		        } else {

		           reject( new Error('mom is not happy') );
		        }

		    }
		);
  • Вопрос задан
  • 186 просмотров
Решения вопроса 1
lastuniverse
@lastuniverse
Всегда вокруг да около IT тем
разбираем ваш код по шагам

isMomHappy у вас false;
var isMomHappy = false;

соответственно эта часть условия у вас не выполняется
if (isMomHappy) {...}

а выполняется вот эта часть
else {
  reject( new Error('mom is not happy') );
}

в которой вы самолично генерируете ошибку
reject( new Error('mom is not happy') );

так происходит потому, что вы не установили промису обработчик ошибки:
willIGetNewPhone.catch(err=>{
   console.log(err.message);
});


ЗЫ

если до сих пор непонятно откуда взялась ошибка, читайте тут ну можно еще и тут для более полного понимания

ЗЫЗЫ

Ну или попробуйте выполнить этот код:
'use strict';
var promise = new Promise((resolve,reject)=>{
   reject(new Error("провал"));
});

и этот код:
'use strict';

var promise = new Promise((resolve,reject)=>{
   reject(new Error("провал"));
});

promise.catch(err=>{
   console.log(err.message);
});

и сравните результат.

ЗЫЗЫЗЫ

если все еще до сих пор не понятно, то просто дочитайте ваш учебный материал до конца
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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