diff --git a/lib/js/src/thrift.js b/lib/js/src/thrift.js
index 4e1f20f..d605ab7 100644
--- a/lib/js/src/thrift.js
+++ b/lib/js/src/thrift.js
@@ -306,12 +306,13 @@
      * or the async parameter is True or the URL is an empty string, the current 
      * send buffer is returned.
      * @param {object} async - If true the current send buffer is returned.
+     * @param {object} callback - Optional async callback function, receives the call result.
      * @returns {undefined|string} Nothing or the current send buffer.
      * @throws {string} If XHR fails.
      */
-    flush: function(async) {
+    flush: function(async, callback) {
         //async mode
-        if (async || this.url === undefined || this.url === '') {
+        if ((async && !callback) || this.url === undefined || this.url === '') {
             return this.send_buf;
         }
 
@@ -321,8 +322,15 @@
             xreq.overrideMimeType('application/json');
         }
 
-        xreq.open('POST', this.url, false);
+        if (callback) {
+            xreq.onreadystatechange = callback;
+        }
+
+        xreq.open('POST', this.url, !!async);
         xreq.send(this.send_buf);
+        if (async && callback) {
+            return;
+        }
 
         if (xreq.readyState != 4) {
             throw 'encountered an unknown ajax ready state: ' + xreq.readyState;
@@ -1152,3 +1160,4 @@
     return client;
 };
 
+
