Если убрать вторую функцию из then
let promise = new Promise(function(resolve, reject) {
setTimeout(() => reject(new Error("Whoops!")), 1000);
});
promise.then(
result => alert(result) // не будет запущена
);
promise.catch(err => alert(err + ' из catch'))
Как не меняй местами... При ошибке будет выполняться только catch.