用vertx compose写链式操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用vertx compose写链式操作相关的知识,希望对你有一定的参考价值。
public static void handleAddCollection(RoutingContext routingContext){ Future<Void> futn=Future.future(); futn.setHandler(a->{ System.out.println("4最后一步:"); sendData(routingContext,"ok"); return; }); Future<UpdateResult> fut1 = Future.future(); JsonArray params=new JsonArray().add("123").add("测试标题").add("http://baidu.com").add(""); String sql="insert into mytable (userid,title,url,pic) values (?,?,?,?)"; myDBConnecton.updateWithParams(sql,params,fut1.completer()); fut1.compose(v-> { if(v.getUpdated()>0)System.out.println("2 插入成功了"); else System.out.println("2 插入失败了"); Future<ResultSet> fut2 = Future.future(); myDBConnecton.query("select * from mytable", fut2.completer()); return fut2; }).compose(v -> { List<JsonObject> data=v.getRows(); System.out.println("3查询结果为:"+data.toString()); Future<Void> fut3 = Future.future(); myDBConnecton.updateWithParams(sql,params,fut1.completer()); futn.complete(); },futn); }
执行结果显示:
2 插入成功了 3查询结果为:[{"id":1,"userid":120,"title":"测试标题","url":"http://baidu.com","pic":"","add_time":null}, {"id":2,"userid":120,"title":"测试标题","url":"http://baidu.com","pic":"","add_time":null}] 4最后一步:
本文出自 “北京看看” 博客,谢绝转载!
以上是关于用vertx compose写链式操作的主要内容,如果未能解决你的问题,请参考以下文章
不要打断链式结构:使用 RxJava的 compose() 操作符