а чего тут пояснять?
промис - обещание - вот он вам и обещает что-то дать
вы ему говорите then (тогда, когда всё получится) дай мне эти данные
а вот если накосячил catch, тогда хоть скажи, что не так, дай ошибку
ну и, так и быть, finally сделай там тоже что-то
но всех задолбали эти колбэки, хоть возможность чейнить then спасает, но всё равно бесит, потому дали нам божественный async/await
и теперь мы просто ждём перед промисом и кидаем в переменную, но при этом промис может и налажать, так что нужен try/catch
ТАДА