當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript rxjs.Subject類代碼示例

本文整理匯總了TypeScript中rxjs.Subject的典型用法代碼示例。如果您正苦於以下問題:TypeScript Subject類的具體用法?TypeScript Subject怎麽用?TypeScript Subject使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了Subject類的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: describe

describe('TaskManagerService', () => {
  let taskManagerService: TaskManagerService;
  let called: boolean;

  const summaryDataSource = new Subject();
  const fakeService = {
    summaryData$: summaryDataSource.asObservable()
  };

  const summary = {
    executing_tasks: [],
    health_status: 'HEALTH_OK',
    mgr_id: 'x',
    rbd_mirroring: { errors: 0, warnings: 0 },
    rbd_pools: [],
    have_mon_connection: true,
    finished_tasks: [{ name: 'foo', metadata: {} }],
    filesystems: [{ id: 1, name: 'cephfs_a' }]
  };

  configureTestBed(
    {
      providers: [TaskManagerService, { provide: SummaryService, useValue: fakeService }]
    },
    true
  );

  beforeEach(() => {
    taskManagerService = TestBed.get(TaskManagerService);
    called = false;
    taskManagerService.subscribe('foo', {}, () => (called = true));
  });

  it('should be created', () => {
    expect(taskManagerService).toBeTruthy();
  });

  it(
    'should subscribe and be notified when task is finished',
    fakeAsync(() => {
      expect(taskManagerService.subscriptions.length).toBe(1);
      summaryDataSource.next(summary);
      tick();
      expect(called).toEqual(true);
      expect(taskManagerService.subscriptions).toEqual([]);
    })
  );

  it(
    'should subscribe and process executing taks',
    fakeAsync(() => {
      const original_subscriptions = _.cloneDeep(taskManagerService.subscriptions);
      _.assign(summary, {
        executing_tasks: [{ name: 'foo', metadata: {} }],
        finished_tasks: []
      });
      summaryDataSource.next(summary);
      tick();
      expect(taskManagerService.subscriptions).toEqual(original_subscriptions);
    })
  );
});
開發者ID:wkennington,項目名稱:ceph,代碼行數:62,代碼來源:task-manager.service.spec.ts

示例2: getEventObservableForType

	getEventObservableForType(eventType: EventType): Observable<Event> {
		return this.eventSubject.asObservable()
			.pipe(filter(event => event.eventType === eventType));
	}
開發者ID:nlacombe42,項目名稱:Vault,代碼行數:4,代碼來源:event.service.ts

示例3: parseInt

    .map(val => parseInt(val, 10))
    .filter(num => !isNaN(num))
    .reduce((previous: number, current: number) => previous + current);

console.log(result);

const result$ = from(source).pipe(
    map(val => parseInt(val, 10)),
    filter(num => !isNaN(num)),
    reduce((previous: number, current: number) => previous + current));

result$.subscribe(res => console.log(res));


/*** Subjects **/
const subject = new RxJS.Subject();

subject.subscribe({
    next: (v) => console.log('observerA: ', v)
});
subject.subscribe({
    next: (v) => console.log('observerB: ', v)
});

subject.next(1);
subject.next(2);


const subjectAsObserver = new RxJS.Subject();

subjectAsObserver.subscribe(v1 => console.log('ObserverA: ', v1));
開發者ID:MarcoLeko,項目名稱:async-patterns,代碼行數:31,代碼來源:introduction.ts

示例4: tap

import { Subject, ConnectableObservable } from "rxjs";
import { tap, share, publish } from "rxjs/operators";

// A Subject is a Multicast / Hot Observable...
// But beware of the .pipe()! it will make it unicast / cold again!

let idx = 0;
const s$ = new Subject<number>();
// the pipe() operator make the subject Cold
const o$ = s$.pipe(
    tap(() => console.log("tap: " + ++idx)),
    // publish() // <- use the publish() operator to make it hot!
) // as ConnectableObservable<number>;

s$.next(1);
s$.next(2);

// o$.connect();

o$.subscribe(data => console.log("subscriber 1: " + data));
o$.subscribe(data => console.log("subscriber 2: " + data));

s$.next(3);
s$.next(4);

// Output: (without publish())
//
// tap: 1          (the side effect is executed for each message for each subscriber)
// subscriber 1: 3
// tap: 2
// subscriber 2: 3
開發者ID:AGiorgetti,項目名稱:rxjs101,代碼行數:31,代碼來源:04-Multicast_and_Pipe.ts

示例5: setImageIndex

 setImageIndex(app: PreviewDataApp, index: number) {
     if (app) {
         appImage.setImageIndex(app.images, this.appImages, index);
         this.previewDataChanged.next();
     }
 }
開發者ID:kencinder,項目名稱:steam-rom-manager,代碼行數:6,代碼來源:preview.service.ts

示例6: clearPreviewData

 clearPreviewData() {
     this.previewData = undefined;
     this.clearImageCache(true);
     this.previewVariables.numberOfListItems = 0;
     this.previewDataChanged.next();
 }
開發者ID:kencinder,項目名稱:steam-rom-manager,代碼行數:6,代碼來源:preview.service.ts

示例7: ngOnDestroy

 /**
  * On destroy
  */
 ngOnDestroy(): void
 {
     // Unsubscribe from all subscriptions
     this._unsubscribeAll.next();
     this._unsubscribeAll.complete();
 }
開發者ID:karthik12ui,項目名稱:fuse-angular-full,代碼行數:9,代碼來源:register.component.ts

示例8:

 imageLoader.onload = () => {
     image.loadStatus = 'done';
     this.previewDataChanged.next();
 };
開發者ID:kencinder,項目名稱:steam-rom-manager,代碼行數:4,代碼來源:preview.service.ts

示例9: subscribe

 subscribe( onNext: StreamCallback ): Subscription  {
     return this.stream.subscribe( onNext );
 }
開發者ID:Izhaki,項目名稱:gefri,代碼行數:3,代碼來源:Stream.ts

示例10: emit

	// ---
	// PUBLIC METHODS.
	// ---

	// I push the given event onto the message bus.
	public emit( event: any ) : void {

		this.eventStream.next( event );

	}
開發者ID:bennadel,項目名稱:JavaScript-Demos,代碼行數:10,代碼來源:message-bus.ts


注:本文中的rxjs.Subject類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。