Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. /**
  2. * Save some data
  3. */
  4. const persistData = data => {
  5. // persist the data
  6. };
  7.  
  8. /**
  9. * Fetch some data, persist it and resolve a promise by given resolve function.
  10. *
  11. * @param {function} resolve - Some resolve from some Promise
  12. * @return {Promise} - A promise from the fetch api
  13. */
  14. const fetchAndPersistAndResolve = resolve =>
  15. fetch('url')
  16. .then(data => {
  17. persistData(data.json());
  18. resolve();
  19. });
  20.  
  21. /**
  22. * This function is passed below to the promise creator, so it becomes the promise's guard
  23. *
  24. * @return {boolean}
  25. */
  26. const checkSomething = () => true;
  27.  
  28. /**
  29. * Create a promise which uses a given guard and a given external resolver
  30. *
  31. * @param {function} guard - A guard that returns a boolean, false if the promise needs to be rejected
  32. * @param {function} externalResolver - An external function, performs other tasks before resolving the promise
  33. */
  34. const createPromiseWithGuardAndExternalResolver = (guard, externalResolver) =>
  35. new Promise((resolve, reject) => {
  36. if (!guard()) {
  37. reject();
  38. // TODO: not sure, if this return statement is necessary
  39. return;
  40. }
  41.  
  42. externalResolver(resolve)
  43. .catch(reject);
  44. });
  45.  
  46. const p = createPromiseWithGuardAndExternalResolver(checkSomething, fetchAndPersistAndResolve);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement