]> git.proxmox.com Git - proxmox-widget-toolkit.git/commitdiff
utils: copy over async helpers
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Mon, 22 Mar 2021 15:17:56 +0000 (16:17 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Mon, 22 Mar 2021 15:17:56 +0000 (16:17 +0100)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
src/Utils.js

index 60c96e0ae54d228406431055e04dcc884646c780..b1ca55befd6469dec2de746bcf7bfa1dd323ba4d 100644 (file)
@@ -1037,3 +1037,28 @@ utilities: {
        me.VlanInterface_match = /(\w+)\.(\d+)/;
     },
 });
+
+Ext.define('Proxmox.Async', {
+    singleton: true,
+
+    // Returns a Promise resolving to the result of an `API2Request`.
+    api2: function(reqOpts) {
+       return new Promise((resolve, reject) => {
+           delete reqOpts.callback; // not allowed in this api
+           reqOpts.success = response => resolve(response);
+           reqOpts.failure = response => {
+               if (response.result && response.result.message) {
+                   reject(response.result.message);
+               } else {
+                   reject("api call failed");
+               }
+           };
+           Proxmox.Utils.API2Request(reqOpts);
+       });
+    },
+
+    // Delay for a number of milliseconds.
+    sleep: function(millis) {
+       return new Promise((resolve, _reject) => setTimeout(resolve, millis));
+    },
+});