aboutsummaryrefslogtreecommitdiff
path: root/viz.js/promise/promise.mli
diff options
context:
space:
mode:
Diffstat (limited to 'viz.js/promise/promise.mli')
-rwxr-xr-xviz.js/promise/promise.mli56
1 files changed, 56 insertions, 0 deletions
diff --git a/viz.js/promise/promise.mli b/viz.js/promise/promise.mli
new file mode 100755
index 0000000..26831c4
--- /dev/null
+++ b/viz.js/promise/promise.mli
@@ -0,0 +1,56 @@
+type ('a, 'b) promise
+
+type 'a resolve = 'a -> unit
+
+type 'a reject = 'a -> unit
+
+val is_supported : unit -> bool
+
+val make : ('a resolve -> 'b reject -> unit) -> ('a, 'b) promise
+
+val resolve : 'a -> ('a, 'b) promise
+
+val reject : 'b -> ('a, 'b) promise
+
+val then_bind :
+ on_fulfilled:('a -> ('c ,'b) promise) ->
+ ?on_rejected:('b -> ('c, 'b) promise) ->
+ ('a, 'b) promise ->
+ ('c, 'b) promise
+
+val then_map :
+ on_fulfilled:('a -> 'c) ->
+ ?on_rejected:('b -> 'd) ->
+ ('a, 'b) promise ->
+ ('c, 'd) promise
+
+val catch_bind :
+ on_rejected:('b -> ('a, 'b) promise) ->
+ ('a, 'b) promise ->
+ ('a, 'b) promise
+
+val catch_map :
+ on_rejected:('b -> 'a) ->
+ ('a, 'b) promise ->
+ ('a, 'b) promise
+
+val then_final :
+ on_fulfilled:('a -> unit) ->
+ on_rejected:('b -> unit) ->
+ ('a, 'b) promise ->
+ unit
+
+val all : (('a, 'b) promise) array -> ('a array, 'b) promise
+
+val race : (('a, 'b) promise) array -> ('a, 'b) promise
+
+module Infix : sig
+ val (>>=) : ('a, 'b) promise -> ('a -> ('c ,'b) promise) -> ('c, 'b) promise
+ val (>|=) : ('a, 'b) promise -> ('a -> 'c) -> ('c, 'b) promise
+
+ val (>>~) : ('a, 'b) promise -> ('b -> ('a, 'b) promise) -> ('a, 'b) promise
+ val (>|~) : ('a, 'b) promise -> ('b -> 'a) -> ('a, 'b) promise
+
+ val (>||) : ('a, 'b) promise -> ('a -> unit) * ('b -> unit) -> unit
+end
+