当前位置: 首页>>代码示例>>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;未经允许,请勿转载。