summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/framework/utils.js
diff options
context:
space:
mode:
authorGéry Debongnie <ged@odoo.com>2016-06-16 14:00:22 +0200
committerGéry Debongnie <ged@odoo.com>2016-06-17 13:24:54 +0200
commitcfe4b337af7c5ccef586289d1bd7d69a700d5d93 (patch)
treedca60967bb75e35960292c2141feb048ff8f369e /addons/web/static/src/js/framework/utils.js
parentcfe13f79e6ab513f9753ee995cf9bd56dab4d3a4 (diff)
[REF] web: move async_when to utils
Diffstat (limited to 'addons/web/static/src/js/framework/utils.js')
-rw-r--r--addons/web/static/src/js/framework/utils.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/addons/web/static/src/js/framework/utils.js b/addons/web/static/src/js/framework/utils.js
index edf7355dc29..e19246823c5 100644
--- a/addons/web/static/src/js/framework/utils.js
+++ b/addons/web/static/src/js/framework/utils.js
@@ -470,6 +470,31 @@ function toBoolElse (str, elseValues, trueValues, falseValues) {
return ret;
}
+function async_when() {
+ var async = false;
+ var def = $.Deferred();
+ $.when.apply($, arguments).done(function() {
+ var args = arguments;
+ var action = function() {
+ def.resolve.apply(def, args);
+ };
+ if (async)
+ action();
+ else
+ setTimeout(action, 0);
+ }).fail(function() {
+ var args = arguments;
+ var action = function() {
+ def.reject.apply(def, args);
+ };
+ if (async)
+ action();
+ else
+ setTimeout(action, 0);
+ });
+ async = true;
+ return def;
+}
return {
divmod: divmod,
@@ -501,6 +526,7 @@ return {
delay: delay,
swap: swap,
toBoolElse: toBoolElse,
+ async_when: async_when,
};
});