From 2e0171c8ad33e7c7b1cbbe90a3cb923e5b44900c Mon Sep 17 00:00:00 2001 From: ashraf7hossain <76731023+ashraf7hossain@users.noreply.github.com> Date: Tue, 8 Jul 2025 17:37:01 +0600 Subject: [PATCH] used operate function instead of subscribe --- packages/rxjs/src/internal/firstValueFrom.ts | 34 +++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/packages/rxjs/src/internal/firstValueFrom.ts b/packages/rxjs/src/internal/firstValueFrom.ts index 16b11fece2..3de708a6c1 100644 --- a/packages/rxjs/src/internal/firstValueFrom.ts +++ b/packages/rxjs/src/internal/firstValueFrom.ts @@ -1,5 +1,4 @@ -import type { Observable} from '@rxjs/observable'; -import { Subscriber } from '@rxjs/observable'; +import { Observable, operate } from '@rxjs/observable'; import { EmptyError } from './util/EmptyError.js'; export interface FirstValueFromConfig { @@ -56,20 +55,23 @@ export function firstValueFrom(source: Observable): Promise; export function firstValueFrom(source: Observable, config?: FirstValueFromConfig): Promise { const hasConfig = typeof config === 'object'; return new Promise((resolve, reject) => { - const subscriber = new Subscriber({ - next: (value: T) => { - resolve(value); - subscriber.unsubscribe(); - }, - error: reject, - complete: () => { - if (hasConfig) { - resolve(config!.defaultValue); - } else { - reject(new EmptyError()); - } - }, + new Observable((destination) => { + const subscriber = operate({ + destination, + next: (value: T) => { + resolve(value); + subscriber.unsubscribe(); + }, + error: reject, + complete: () => { + if (hasConfig) { + resolve(config!.defaultValue); + } else { + reject(new EmptyError()); + } + }, + }); + source.subscribe(subscriber); }); - source.subscribe(subscriber); }); }