+ * A promise represents the result of an asynchronous computation. A promise will transition from a + * pending state to a completed state at most once, but may remain in a pending state indefinitely. + *
+ * + *+ * Promises are created by a {@link PromiseFactory} and support chaining operations to be executed + * upon completion. These operations can be synchronous or asynchronous, and can be composed in a + * variety of ways. Promises can be listened to for completions, either with a result or with an + * exception. Promises can be cancelled, which will propagate a cancellation signal through the + * chain, but a promise can also be forked, which will prevent propagation of cancellations. + *
+ * + * @see #cancel() + * @see #fork() + */ public interface Promise