关于callback hell

 client.getConnection(res -> {
            SQLConnection connection = res.result();
            connection.query("select 1", res2 -> {
                connection.query("select 2", res3 -> {
                    System.out.println(res2 + "--" + res3);
                });
            });
        });

上面的代码算是一个典型的callback hell,那下面这样是不是就没有了?下面这样会失去非阻塞的特点吗?上面代码如果后一次query依赖前一次query的结果,大的角度来看它就是串行的,只不过不在main线程里执行,那下面这段代码我也把它放在其他线程里做,那效果是不是一样的?

        SQLConnection> conn = null;
        client.getConnection(res -> conn=res.result());
        String data1=null;
        conn.query("select 1", res -> data1=res);
        String data2=null;
        conn.query("select 2", res -> data2=res);
阅读 2.5k
1 个回答

第二段代码不会报 can not read property 'query' from 'null' 的错吗?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进