Promise<Integer> promise = new Promise<>();
promise.onSuccess(result -> {
})
.onFailure(error -> {
})
.onCancel(() -> {
});
new Thread(() -> {
try {
Thread.sleep(2000);
int result = 42;
promise.resolve(result);
} catch (InterruptedException e) {
promise.fail(e);
}
}).start();