| Server IP : 139.59.63.204 / Your IP : 216.73.217.62 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ubuntu-s-1vcpu-1gb-blr1-01 6.8.0-110-generic #110-Ubuntu SMP PREEMPT_DYNAMIC Thu Mar 19 15:09:20 UTC 2026 x86_64 User : root ( 0) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/abyogasms.com/node_modules/rxjs/src/internal/operators/ |
Upload File : |
import { EmptyError } from '../util/EmptyError';
import { MonoTypeOperatorFunction } from '../types';
import { operate } from '../util/lift';
import { createOperatorSubscriber } from './OperatorSubscriber';
/**
* If the source observable completes without emitting a value, it will emit
* an error. The error will be created at that time by the optional
* `errorFactory` argument, otherwise, the error will be {@link EmptyError}.
*
* 
*
* ## Example
*
* Throw an error if the document wasn't clicked within 1 second
*
* ```ts
* import { fromEvent, takeUntil, timer, throwIfEmpty } from 'rxjs';
*
* const click$ = fromEvent(document, 'click');
*
* click$.pipe(
* takeUntil(timer(1000)),
* throwIfEmpty(() => new Error('The document was not clicked within 1 second'))
* )
* .subscribe({
* next() {
* console.log('The document was clicked');
* },
* error(err) {
* console.error(err.message);
* }
* });
* ```
*
* @param errorFactory A factory function called to produce the
* error to be thrown when the source observable completes without emitting a
* value.
* @return A function that returns an Observable that throws an error if the
* source Observable completed without emitting.
*/
export function throwIfEmpty<T>(errorFactory: () => any = defaultErrorFactory): MonoTypeOperatorFunction<T> {
return operate((source, subscriber) => {
let hasValue = false;
source.subscribe(
createOperatorSubscriber(
subscriber,
(value) => {
hasValue = true;
subscriber.next(value);
},
() => (hasValue ? subscriber.complete() : subscriber.error(errorFactory()))
)
);
});
}
function defaultErrorFactory() {
return new EmptyError();
}