###Async usage pattern All query methods use the following typical async pattern // site.Badges().invoke(function onSuccess(items, userContext, methodName) { // handle items array of domain objects // if linq.js is loaded the items array will be an instance of // Enumerable<domain object> }, function onFailed(error, userContext, methodName) { // handle error - which looks like this: // error : { // message: "the message", // code: 500, // the status code // url: "the url that failed" // }; }, { someUserContext: "foo" }); // The static ApiProxy provides a place to hang default/global handlers. Certain application structures lend themselves well to a centralized response handler. // on Soapi.Net.ApiProxy, you may set default callbacks. e.g. Soapi.Net.ApiProxy .set_defaultSucceededCallback(function(data, userContext, methodName) { // default response handler }); Soapi.Net.ApiProxy .set_defaultFailedCallback(function(error, userContext, methodName) { // default error handler }); Once you are comfortable with the async pattern used by Soapi.JS2, a clear understanding of query parameterization is in order..... **NEXT:** [Parameterization and Paging][1] [1]: http://stackapps.com/questions/1433/soapi-js2-a-whole-nother-thang-alpha-preview/1440#1440