diff --git a/examples/jio_dashboard.html b/examples/jio_dashboard.html
index 27bd8f9ec16d4c81456bec9426109467a57d933d..00d476aefa7e681b40868b7327604a7e08e6066b 100644
--- a/examples/jio_dashboard.html
+++ b/examples/jio_dashboard.html
@@ -272,19 +272,24 @@ function printLocalStorage() {
   log("localStorage content\n" + JSON.stringify(localStorage, null, "  "));
 }
 
-function callback(err, val, begin_date) {
+function logError(begin_date, err) {
+  log('time : ' + (Date.now() - begin_date));
+  error('return :' + JSON.stringify(err, null, "  "));
+  throw err;
+}
+
+function logAnswer(begin_date, val) {
   log('time : ' + (Date.now() - begin_date));
-  if (err) {
-    return error('return :' + JSON.stringify(err, null, "  "));
-  }
   log('return : ' + JSON.stringify(val, null, "  "));
+  return val;
 }
 
 function command(method, num) {
   var begin_date = Date.now(), doc = {}, opts = {};
 
   if (!my_jio) {
-    return error('no jio set');
+    error('no jio set');
+    return;
   }
 
   doc = select('#metadata').value;
@@ -302,22 +307,20 @@ function command(method, num) {
       '\nopts: ' + JSON.stringify(opts, null, "  "));
 
   if (method === "allDocs") {
-    my_jio.allDocs(opts).then(function (answer) {
-      callback(undefined, answer, begin_date);
-    }, function (error) {
-      callback(error, undefined, begin_date);
-    });
+    return my_jio.allDocs(opts).then(
+      logAnswer.bind(null, begin_date),
+      logError.bind(null, begin_date)
+    );
   } else {
-    my_jio[method](doc, opts).then(function (answer) {
-      callback(undefined, answer, begin_date);
-    }, function (error) {
-      callback(error, undefined, begin_date);
-    });
+    return my_jio[method](doc, opts).then(
+      logAnswer.bind(null, begin_date),
+      logError.bind(null, begin_date)
+    );
   }
 }
 
 function doCommandNTimes(method) {
-  var i = -1, n = 0, lock;
+  var i = -1, n = 0, lock, promise_list = [];
   n = parseInt(select("#times").value, 10);
   lock = select("#times-lock").checked;
   if (!lock) {
@@ -327,39 +330,40 @@ function doCommandNTimes(method) {
     n = 1;
   }
   while (++i < n) {
-    command(method, i);
+    promise_list.push(command(method, i));
   }
+  return RSVP.all(promise_list);
 }
 
 function post() {
-  doCommandNTimes("post");
+  return doCommandNTimes("post");
 }
 function put() {
-  doCommandNTimes("put");
+  return doCommandNTimes("put");
 }
 function get() {
-  doCommandNTimes("get");
+  return doCommandNTimes("get");
 }
 function remove() {
-  doCommandNTimes("remove");
+  return doCommandNTimes("remove");
 }
 function putAttachment() {
-  doCommandNTimes("putAttachment");
+  return doCommandNTimes("putAttachment");
 }
 function getAttachment() {
-  doCommandNTimes("getAttachment");
+  return doCommandNTimes("getAttachment");
 }
 function removeAttachment() {
-  doCommandNTimes("removeAttachment");
+  return doCommandNTimes("removeAttachment");
 }
 function allDocs() {
-  doCommandNTimes("allDocs");
+  return doCommandNTimes("allDocs");
 }
 function check() {
-  doCommandNTimes("check");
+  return doCommandNTimes("check");
 }
 function repair() {
-  doCommandNTimes("repair");
+  return doCommandNTimes("repair");
 }
         //-->
   </script>