Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(throwError): removed deprecated call patterns #7006

Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
feat(throwError): removed deprecated throwError(errorFactory, schedul…
…er) call pattern

BREAKING CHANGE: `throwError(errorFactory, scheduler)` call pattern is no longer available. [Read more](https://rxjs.dev/deprecations/scheduler-argument).
  • Loading branch information
demensky committed Dec 17, 2022
commit 6d03f872474405c302063932f5cf910247d44bd5
6 changes: 1 addition & 5 deletions spec-dtslint/observables/throwError-spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { throwError, animationFrameScheduler } from 'rxjs';
import { throwError } from 'rxjs';

it('should error for incorrect errorFactory', () => {
const a = throwError(1); // $ExpectError
Expand All @@ -12,7 +12,3 @@ it('should accept any type and return never observable with support of factory',
const c = throwError(() => ({ a: 1 })); // $ExpectType Observable<never>
const d = throwError(() => ({ a: 2 })); // $ExpectType Observable<never>
});

it('should support a factory and a scheduler', () => {
const a = throwError(() => 1, animationFrameScheduler); // $ExpectType Observable<never>
});
8 changes: 0 additions & 8 deletions spec/observables/throwError-spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,6 @@ describe('throwError', () => {
});
});

it('should accept scheduler', () => {
rxTest.run(({ expectObservable }) => {
const e = throwError(() => 'error', rxTest);

expectObservable(e).toBe('#');
});
});

it('should accept a factory function', () => {
let calls = 0;
let errors: any[] = [];
Expand Down
22 changes: 4 additions & 18 deletions src/internal/observable/throwError.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
import { Observable } from '../Observable';
import { Subscriber } from '../Subscriber';
import { SchedulerLike } from '../types';

/**
* Creates an observable that will create an error instance and push it to the consumer as an error
Expand Down Expand Up @@ -94,20 +92,8 @@ import { SchedulerLike } from '../types';
*
* @param errorFactory A factory function that will create the error instance that is pushed.
*/
export function throwError(errorFactory: () => any): Observable<never>;

/**
* Notifies the consumer of an error using a given scheduler by scheduling it at delay `0` upon subscription.
*
* @param errorFactory 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(errorFactory: () => any, scheduler: SchedulerLike): Observable<never>;

export function throwError(errorFactory: () => any, scheduler?: SchedulerLike): Observable<never> {
const init = (subscriber: Subscriber<never>) => subscriber.error(errorFactory());
return new Observable(scheduler ? (subscriber) => scheduler.schedule(init as any, 0, subscriber) : init);
export function throwError(errorFactory: () => any): Observable<never> {
return new Observable((subscriber) => {
subscriber.error(errorFactory());
});
}