Actually, now that it's always returning a promise, I don't think you need the special cases to see if it's already rejected or resolved, because the `then()` (or `done()/fail()`) will still get called if the promise is already resolved/rejected. (That simplification was why I suggested switching it to always return a promise.) So I think this if statement can be:

```javascript
if (!readyPromise) {
    showLiveDevServerNotReadyError();
} else {
    readyPromise.then(
        doLaunchAfterServerReady,
        showLiveDevServerNotReadyError
    );
}
```