Чтобы расширить @Lucas ответ, который является правильным, then
в Promise формулируется следующим образом (от MDN):
Promise.then(onFulfilled[, onRejected]);
Promise.then(function(value) {
// fulfillment
}, function(reason) {
// rejection
});
Так что ваш первый аргумент функции для выполнения, и ваша вторая функция ап аргумент для отклонения, оба аргумента являются функциями, к которым передаются значения, основанные на том, что произошло.
Так что, как @Lucas сказал
Promise.resolve().then(() => doSomething())
фактически вызывает вашу функцию, где, как только проездом в doSomething()
вызывает функцию и возвращает значение или неопределенным, если нет возврата, который ничего не будет делать, если эта функция возвращает функция (которая, вероятно, была бы необоснованным способом перейти к возможности использования).
В первом случае функция doSomething должна возвращать другую функцию, потому что .then() нуждается в передаче функции. – Artur
Что конкретно вас смущает? –