observables/fromPromise.js

  1. import { Observable } from '../Observable';
  2. import { isPromise } from '../utilities';
  3. /**
  4. * Turns a promise into an observable that emits the value of the promise and then completes
  5. *
  6. * @memberof observables
  7. *
  8. * @param {Promise} promise
  9. * @returns {Observable}
  10. */
  11. export const fromPromise = function (promise) {
  12. return new Observable(function ({ next, complete, error }) {
  13. if (isPromise(promise)) {
  14. promise.then(function (values) {
  15. next(values);
  16. complete();
  17. }, error).catch(error);
  18. } else {
  19. error('Passed an invalid object to fromPromise', promise);
  20. }
  21. });
  22. };
  23. Observable.fromPromise = fromPromise;