@lifaon/rx-js-light
Version:
Blazing fast Observables
22 lines (21 loc) • 534 B
JavaScript
import {createImmediate} from "../../../../../../misc/timer/create-immediate.mjs";
export function debounceImmediateObservable(subscribe) {
return emit => {
let abortTimeout = null;
const unsubscribe = subscribe(value => {
if (abortTimeout !== null) {
abortTimeout();
}
abortTimeout = createImmediate(() => {
abortTimeout = null;
emit(value);
});
});
return () => {
unsubscribe();
if (abortTimeout !== null) {
abortTimeout();
}
};
};
}