I am new to ES6 Promises and have been doing research. I have some code executing in NodeJS that does some async work, but I have a few pre-conditions that must be checked f
I'm not certain I understand the intent of
Promise.reject(), but it seems to fit the bill here
You've understood it correctly. It's explicitly made for use cases such as this. Go for it, it is the best practice.
The advantage of Option 2 is that it works much cleaner with APIs that already do return promises (think return externalLibrary.doSomethingAsync(data)), and has less chance to fall for the Promise constructor antipattern.