vertx3 - how to write own async hander in java vertx -


i want write function take arguments , handler<e> object. after doing computation based on other arguments, need return result on handler object.

to explain better, giving example:

    public void getplaces(latlong latlong, int redius, collection<placetype> places) {     if(redius <= 0 || redius > 50000)     {         throw new illegalaccesserror("redis can 0 50000 meters only");     }     string uri = string.format(google_place_api_uri, latlong.getlatitude(), latlong.getlongitude(), redius, project_api_key, joiner.on("|").join(places));       httpclientrequest request = httpclient.getabs(uri, response ->{         logger.info("received response status code={} message={}", response.statuscode(), response.statusmessage());         response.bodyhandler( buffer -> {             jsonobject result = buffer.tojsonobject();             string nextpagetoken = result.getstring("next_page_token");             jsonarray resultarray = result.getjsonarray("results");             system.out.println("nextpagetoken="+nextpagetoken+" result="+resultarray);         });      }).settimeout(30000);      request.exceptionhandler(e -> {         logger.error("caught exception while making request google place apis. error message={} e=", e.getmessage(), e);     });     request.end(); }      public void getplaces(latlong latlong, int redius, collection<placetype> places, handler<jsonobject> response) {     // complete using above function     getplaces(latlong, redius, places); } 

i'm not sure understand need, guess want call handler result of computation. code should want:

public void getplaces(latlong latlong, int redius, collection<placetype> places, handler<jsonobject> handler) {      if(redius <= 0 || redius > 50000) {         throw new illegalaccesserror("redis can 0 50000 meters only");     }      string uri = string.format(google_place_api_uri, latlong.getlatitude(), latlong.getlongitude(), redius, project_api_key, joiner.on("|").join(places));      httpclientrequest request = httpclient.getabs(uri, response ->{         logger.info("received response status code={} message={}", response.statuscode(), response.statusmessage());         response.bodyhandler( buffer -> {             jsonobject result = buffer.tojsonobject();             string nextpagetoken = result.getstring("next_page_token");             jsonarray resultarray = result.getjsonarray("results");             system.out.println("nextpagetoken="+nextpagetoken+" result="+resultarray);             handler.handle(result); // call result handler         });      }).settimeout(30000);      request.exceptionhandler(e -> {         logger.error("caught exception while making request google place apis. error message={} e=", e.getmessage(), e);     });     request.end(); } 

hope help.


Comments

Popular posts from this blog

java - pagination of xlsx file to XSSFworkbook using apache POI -

Unlimited choices in BASH case statement -

apache - How do I stop my index.php being run twice for every user -