@lifaon/rx-js-light
Version:
Blazing fast Observables
24 lines (23 loc) • 793 B
JavaScript
import {STATIC_COMPLETE_NOTIFICATION} from "../../../../../../misc/notifications/built-in/complete/complete-notification.constant.mjs";
import {createErrorNotification} from "../../../../../../misc/notifications/built-in/error/create-error-notification.mjs";
import {createNextNotification} from "../../../../../../misc/notifications/built-in/next/create-next-notification.mjs";
export function fromPromise(promise) {
return emit => {
let running = true;
promise.then(value => {
if (running) {
emit(createNextNotification(value));
}
if (running) {
emit(STATIC_COMPLETE_NOTIFICATION);
}
}, error => {
if (running) {
emit(createErrorNotification(error));
}
});
return () => {
running = false;
};
};
}