Каким образом обработчики добавляются в промис?
Например
const p = new Promise(...).then(...).then(...).catch()
const p2 = new Promise(...).catch().then(...).then(...)
В данном примере получается, что нам не важно, где добавлять catch, в начале или в конце, каким образом этот catch попадает в промис и что из себя представляет этот промис, что может таким образом в объект собирать "методы как я понял"
Как вообще промис собирается при его создании и почему не важна очередность расположения для catch()?