From 7cfd04ffb4ed2cf7687dd0449d8cc62103fd59a0 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 11 Dec 2018 08:42:38 +0300 Subject: xhr helpers: wrap in promises --- js/common.js | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) (limited to 'js/common.js') diff --git a/js/common.js b/js/common.js index 788c159fe..210a1c6cc 100755 --- a/js/common.js +++ b/js/common.js @@ -18,23 +18,35 @@ function exception_error(e, e_compat, filename, lineno, colno) { function xhrPost(url, params, complete) { console.log("xhrPost:", params); - return new Ajax.Request(url, { - parameters: params, - onComplete: complete + + return new Promise((resolve, reject) => { + new Ajax.Request(url, { + parameters: params, + onComplete: function(reply) { + if (complete != undefined) complete(reply); + + resolve(reply); + } + }); }); } function xhrJson(url, params, complete) { - return xhrPost(url, params, (reply) => { - try { - const obj = JSON.parse(reply.responseText); - complete(obj); - } catch (e) { - console.error("xhrJson", e, reply); - complete(null); - } + return new Promise((resolve, reject) => { + return xhrPost(url, params).then((reply) => { + let obj = null; + + try { + obj = JSON.parse(reply.responseText); + } catch (e) { + console.error("xhrJson", e, reply); + } + + if (complete != undefined) complete(obj); - }) + resolve(obj); + }); + }); } /* add method to remove element from array */ -- cgit v1.2.3