В следующем коде предложение 'then' выполняется сразу, оно не ожидает завершения Promise:
function doSomething() { ... }
p = new Promise( ... );
p.then(doSomething()}
В то время как это прекрасно работает:
function doSomething() { ... }
p = new Promise( ... );
p.then(() => {doSomething()}}
Пожалуйста, кто-нибудь может объяснить, почему две версии не эквивалентны?
Вот пример кода, демонстрирующего это: https://jsfiddle.net/damianhelme/8b6pq9mL/18/