Buckets:
| import { Observable } from '../Observable'; | |
| import { Subscriber } from '../Subscriber'; | |
| import { SchedulerLike } from '../types'; | |
| import { isFunction } from '../util/isFunction'; | |
| /** | |
| * Creates an observable that will create an error instance and push it to the consumer as an error | |
| * immediately upon subscription. | |
| * | |
| * <span class="informal">Just errors and does nothing else</span> | |
| * | |
| *  | |
| * | |
| * This creation function is useful for creating an observable that will create an error and error every | |
| * time it is subscribed to. Generally, inside of most operators when you might want to return an errored | |
| * observable, this is unnecessary. In most cases, such as in the inner return of {@link concatMap}, | |
| * {@link mergeMap}, {@link defer}, and many others, you can simply throw the error, and RxJS will pick | |
| * that up and notify the consumer of the error. | |
| * | |
| * ## Example | |
| * | |
| * Create a simple observable that will create a new error with a timestamp and log it | |
| * and the message every time you subscribe to it | |
| * | |
| * ```ts | |
| * import { throwError } from 'rxjs'; | |
| * | |
| * let errorCount = 0; | |
| * | |
| * const errorWithTimestamp$ = throwError(() => { | |
| * const error: any = new Error(`This is error number ${ ++errorCount }`); | |
| * error.timestamp = Date.now(); | |
| * return error; | |
| * }); | |
| * | |
| * errorWithTimestamp$.subscribe({ | |
| * error: err => console.log(err.timestamp, err.message) | |
| * }); | |
| * | |
| * errorWithTimestamp$.subscribe({ | |
| * error: err => console.log(err.timestamp, err.message) | |
| * }); | |
| * | |
| * // Logs the timestamp and a new error message for each subscription | |
| * ``` | |
| * | |
| * ### Unnecessary usage | |
| * | |
| * Using `throwError` inside of an operator or creation function | |
| * with a callback, is usually not necessary | |
| * | |
| * ```ts | |
| * import { of, concatMap, timer, throwError } from 'rxjs'; | |
| * | |
| * const delays$ = of(1000, 2000, Infinity, 3000); | |
| * | |
| * delays$.pipe( | |
| * concatMap(ms => { | |
| * if (ms < 10000) { | |
| * return timer(ms); | |
| * } else { | |
| * // This is probably overkill. | |
| * return throwError(() => new Error(`Invalid time ${ ms }`)); | |
| * } | |
| * }) | |
| * ) | |
| * .subscribe({ | |
| * next: console.log, | |
| * error: console.error | |
| * }); | |
| * ``` | |
| * | |
| * You can just throw the error instead | |
| * | |
| * ```ts | |
| * import { of, concatMap, timer } from 'rxjs'; | |
| * | |
| * const delays$ = of(1000, 2000, Infinity, 3000); | |
| * | |
| * delays$.pipe( | |
| * concatMap(ms => { | |
| * if (ms < 10000) { | |
| * return timer(ms); | |
| * } else { | |
| * // Cleaner and easier to read for most folks. | |
| * throw new Error(`Invalid time ${ ms }`); | |
| * } | |
| * }) | |
| * ) | |
| * .subscribe({ | |
| * next: console.log, | |
| * error: console.error | |
| * }); | |
| * ``` | |
| * | |
| * @param errorFactory A factory function that will create the error instance that is pushed. | |
| */ | |
| export function throwError(errorFactory: () => any): Observable<never>; | |
| /** | |
| * Returns an observable that will error with the specified error immediately upon subscription. | |
| * | |
| * @param error The error instance to emit | |
| * @deprecated Support for passing an error value will be removed in v8. Instead, pass a factory function to `throwError(() => new Error('test'))`. This is | |
| * because it will create the error at the moment it should be created and capture a more appropriate stack trace. If | |
| * for some reason you need to create the error ahead of time, you can still do that: `const err = new Error('test'); throwError(() => err);`. | |
| */ | |
| export function throwError(error: any): Observable<never>; | |
| /** | |
| * Notifies the consumer of an error using a given scheduler by scheduling it at delay `0` upon subscription. | |
| * | |
| * @param errorOrErrorFactory An error instance or error factory | |
| * @param scheduler A scheduler to use to schedule the error notification | |
| * @deprecated The `scheduler` parameter will be removed in v8. | |
| * Use `throwError` in combination with {@link observeOn}: `throwError(() => new Error('test')).pipe(observeOn(scheduler));`. | |
| * Details: https://rxjs.dev/deprecations/scheduler-argument | |
| */ | |
| export function throwError(errorOrErrorFactory: any, scheduler: SchedulerLike): Observable<never>; | |
| export function throwError(errorOrErrorFactory: any, scheduler?: SchedulerLike): Observable<never> { | |
| const errorFactory = isFunction(errorOrErrorFactory) ? errorOrErrorFactory : () => errorOrErrorFactory; | |
| const init = (subscriber: Subscriber<never>) => subscriber.error(errorFactory()); | |
| return new Observable(scheduler ? (subscriber) => scheduler.schedule(init as any, 0, subscriber) : init); | |
| } | |
Xet Storage Details
- Size:
- 4.47 kB
- Xet hash:
- 6dbd2465c100ae53b1787eafc47931d4f63c1ecd10db975bd9e1adcac95825f9
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.