You can make synchronous XHR requests, but this is not idiomatic. Javascript (and Clojurescript by extension) uses a single-threaded execution model, so long calls are usually asynchronous to avoid blocking the execution of other parts of the application. If you are writing a wrapper for a synchronous API, you usually add a callback parameter for each API method (and remember to provide some form of error handling).
As for your specific question, accessing the reddit API from a browser almost certainly violates the same origin policy : you can usually make AJAX requests to the domain that served the original Javascript. Usually, when you want to provide access to a third-party service on the client side (browser-based), you do this by proxying client requests through your server. The server must ensure that it requests only authorized clients. If you decide to use this route, you will make an asynchronous request from your browser using clojurescript to your web server (presumably by running clojure), which will authenticate the request and then make a synchronous request in the reddit API and return the result for the client. When the answer is ready, the client will call a callback and your code will get the result.
source share