promise.js 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. /**
  2. * DevExtreme (core/polyfills/promise.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 deferredUtils = require("../../core/utils/deferred");
  11. var windowUtils = require("../../core/utils/window");
  12. var Deferred = deferredUtils.Deferred;
  13. var when = deferredUtils.when;
  14. var promise = windowUtils.hasWindow() ? windowUtils.getWindow().Promise : Promise;
  15. if (!promise) {
  16. promise = function(resolver) {
  17. var d = new Deferred;
  18. resolver(d.resolve.bind(this), d.reject.bind(this));
  19. return d.promise()
  20. };
  21. promise.resolve = function(val) {
  22. return (new Deferred).resolve(val).promise()
  23. };
  24. promise.reject = function(val) {
  25. return (new Deferred).reject(val).promise()
  26. };
  27. promise.all = function(promises) {
  28. return when.apply(this, promises).then(function() {
  29. return [].slice.call(arguments)
  30. })
  31. }
  32. }
  33. module.exports = promise;