its interesting that when people talk about the newest feature or framework in javascript, they tend to forget about javascript's core functionality. It's always necessary to look at things like promises with javascript's core functionality in mind. Take #3 for example, which is really just a function of the core way javascript executes, taking promises aside!
You would not do something like this would you in a normal day at the office?
function myFunction(doSomething()){
};
so why would you do this.
Promise.then(doSomething());
doSomething() gets immediately invoked when the code is evaluated. It has nothing to do with Promises.
Don't forget the fundamentals!