CompletablePromise library allows to create a Promise instance that does not start its resolution upon its declaration.
github.com/gturi/completable-promise
gturi/completable-promise