首页
随机
最近更改
特殊页面
社群首页
参数设置
关于WHY42
免责声明
WHY42
搜索
用户菜单
登录
欢迎来到Riguz的小站!这是一个私人wiki,用来记录一些我的笔记。
查看“︁Vertx: Future异步操作设计”︁的源代码
←
Vertx: Future异步操作设计
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
=Future相关操作的设计= == AsyncResult == AsyncResult表示一个异步操作的结果,这个结果要么是成功的,要么是失败的。 <syntaxhighlight lang="java"> interface AsyncResult<T> { /* 获取异步结果,或者失败原因。倘若失败,那么结果为null */ T getResult(); Throwable cause(); boolean succeeded(); boolean failed(); /* 对结果进行转换。如果成功,那么可以将成功的结果转换为另一种形式;否则可以得到一个替代的结果。*/ <V> AsyncResult<V> map(Function<T, V> mapper); <V> AsyncResult<V> map(V value); <V> AsyncResult<V> mapEmpty(); AsyncResult<T> otherwise(T value); AsyncResult<T> otherwise(Function<Throwable, T> mapper); AsyncResult<T> otherwiseEmpty(); } </syntaxhighlight> ==Future== Future表示一个尚未完成的异步操作,并继承自AsyncResult <syntaxhighlight lang="java"> interface Future<T> extends AsyncResult<T> { /* 注册相关的回调函数,在执行完成的时候运行。倘若希望成功时执行那么处理结果(T),关心失败则处理异常; 倘若无论成功与否都希望执行,那么需要处理AsyncResult<T> */ boolean isComplete(); Future<T> onComplete(Handler<AsyncResult<T>> handler); Future<T> onSuccess(Handler<T> handler); Future<T> onFailure(Handler<Throwable> handler); /* 跟map差不多,但是map的对象本身也是一个Future */ <V> Future<V> compose(Function<T, Future<V>> mapper); <V> Future<V> compose(Function<T, Future<V>> successMapper, Function<Throwable, Future<V>> failureMapper); /* 从错误中恢复, 跟otherwise类似但是mapper也是一个Future。即如果失败那干别的 */ Future<T> recover(Function<Throwable, Future<T>> mapper); /* 根据结果决定下一步要怎么去做 */ <V> Future<V> transform(Function<AsyncResult<T>, Future<V>> mapper); /* 无论结果如何都会执行的动作 */ <V> Future<T> eventually(Function<Void, Future<V>> mapper); CompletionStage<T> toCompletionState(); /* 重载了AsyncResult相关的转换操作 */ <V> Future<V> map(Function<T, V> mapper); <V> Future<V> map(V value); <V> Future<V> mapEmpty(); Future<T> otherwise(T value); Future<T> otherwise(Function<Throwable, T> mapper); Future<T> otherwiseEmpty(); } </syntaxhighlight> [[Category:Vert.x]]
返回
Vertx: Future异步操作设计
。