diff options
Diffstat (limited to 'addons/web/static/src/js/framework/utils.js')
| -rw-r--r-- | addons/web/static/src/js/framework/utils.js | 26 |
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, }; }); |
