разбираем ваш код по шагам
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);
});
и сравните результат.