defer.js 993 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /**
  2. * A function used to resolve a promise upon completion .
  3. * @callback defer.resolve
  4. *
  5. * @param {*} value The resulting value.
  6. */
  7. /**
  8. * A function used to reject a promise upon failure.
  9. * @callback defer.reject
  10. *
  11. * @param {*} error The error.
  12. */
  13. /**
  14. * An object which contains a promise object, and functions to resolve or reject the promise.
  15. *
  16. * @typedef {Object} defer.deferred
  17. * @property {defer.resolve} resolve Resolves the promise when called.
  18. * @property {defer.reject} reject Rejects the promise when called.
  19. * @property {Promise} promise Promise object.
  20. */
  21. /**
  22. * Creates a deferred object, containing a promise object, and functions to resolve or reject the promise.
  23. * @returns {defer.deferred}
  24. * @private
  25. */
  26. function defer() {
  27. let resolve;
  28. let reject;
  29. const promise = new Promise(function (res, rej) {
  30. resolve = res;
  31. reject = rej;
  32. });
  33. return {
  34. resolve: resolve,
  35. reject: reject,
  36. promise: promise,
  37. };
  38. }
  39. export default defer;