in src/main/java/com/twitter/nodes_examples/search/DelayedResponse.java [39:51]
public final <T> Future<T> delay(final T value) {
final Promise<T> promise = new Promise<T>();
executor.submit(() -> {
try {
Thread.sleep(500 + random.nextInt(500)); // somewhere between 0.5 ~ 1.0 second
promise.become(Future.value(value));
} catch (InterruptedException e) {
Thread.interrupted();
promise.become(Future.exception(new Exception("interrupted")));
}
});
return promise;
}