Jv.PromiseSourceJavaScript promise support.
In bindings do not use this directly use Fut.
create (fun res rej -> ...) is a promise that can be resolved with res and rejected with rej. Note that res has a weird semantics see resolve for details.
resolve v is a promise that resolve with v. Warning. this is not a monadic return it also joins. Use Fut for a sound typed semantics of promises.
then' p res rej binds p's resolution to res and p's rejection to rej.