deferred.js 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. /**
  2. * DevExtreme (integration/jquery/deferred.js)
  3. * Version: 19.1.16
  4. * Build date: Tue Oct 18 2022
  5. *
  6. * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
  7. * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
  8. */
  9. "use strict";
  10. var jQuery = require("jquery");
  11. var deferredUtils = require("../../core/utils/deferred");
  12. var useJQuery = require("./use_jquery")();
  13. var compareVersion = require("../../core/utils/version").compare;
  14. if (useJQuery) {
  15. var Deferred = jQuery.Deferred;
  16. var strategy = {
  17. Deferred: Deferred
  18. };
  19. strategy.when = compareVersion(jQuery.fn.jquery, [3]) < 0 ? jQuery.when : function(singleArg) {
  20. if (0 === arguments.length) {
  21. return (new Deferred).resolve()
  22. } else {
  23. if (1 === arguments.length) {
  24. return singleArg && singleArg.then ? singleArg : (new Deferred).resolve(singleArg)
  25. } else {
  26. return jQuery.when.apply(jQuery, arguments)
  27. }
  28. }
  29. };
  30. deferredUtils.setStrategy(strategy)
  31. }