Не совсем понятно, зачем нужен второй параметр коллбэка, reject? Ведь если будет ошибка, она все равно окажется в catch
new Promise(function(resolve){a/*undefined var*/})
.catch(function(err){console.log(err)})
//>>>> [ReferenceError: a is not defined]
?