当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript BehaviorSubject.pipe方法代码示例

本文整理汇总了TypeScript中rxjs.BehaviorSubject.pipe方法的典型用法代码示例。如果您正苦于以下问题:TypeScript BehaviorSubject.pipe方法的具体用法?TypeScript BehaviorSubject.pipe怎么用?TypeScript BehaviorSubject.pipe使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在rxjs.BehaviorSubject的用法示例。


在下文中一共展示了BehaviorSubject.pipe方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: getMovies

 getMovies(start: BehaviorSubject<string>): Observable<any[]> {
   return start.pipe(
     switchMap(startText => {
       const endText = startText + '\uf8ff';
       return this.db
         .list('/movies', ref =>
           ref
             .orderByChild('Title')
             .limitToFirst(10)
             .startAt(startText)
             .endAt(endText)
         )
         .snapshotChanges()
         .pipe(
           debounceTime(200),
           distinctUntilChanged(),
           map(changes => {
             return changes.map(c => {
               return { key: c.payload.key, ...c.payload.val() };
             });
           })
         );
     })
   );
 }
开发者ID:audiBookning,项目名称:autocomplete-search-angularfirebase2-5-plus,代码行数:25,代码来源:movies.service.ts

示例2: it

 it('should handle dynamic queries that return empty sets', async (done) => {
   const ITEMS = 10;
   let count = 0;
   let firstIndex = 0;
   let pricefilter$ = new BehaviorSubject<number|null>(null);
   const randomCollectionName = randomName(afs.firestore);
   const ref = afs.firestore.collection(`${randomCollectionName}`);
   let names = await createRandomStocks(afs.firestore, ref, ITEMS);
   const sub = pricefilter$.pipe(switchMap(price => {
     return afs.collection(randomCollectionName, ref => price ? ref.where('price', '==', price) : ref).valueChanges()
   })).subscribe(data => {
     count = count + 1;
     // the first time should all be 'added'
     if(count === 1) {
       expect(data.length).toEqual(ITEMS);
       pricefilter$.next(-1);
     }
     // on the second round, we should have filtered out everything
     if(count === 2) {
       expect(data.length).toEqual(0);
       sub.unsubscribe();
       deleteThemAll(names, ref).then(done).catch(done.fail);
     }
   });
 });
开发者ID:Tetsumote,项目名称:angularfire2,代码行数:25,代码来源:collection.spec.ts

示例3: constructor

    constructor(
		private http: HttpClient,
		private api: APIService,
	) {
        this.tokenSubject = new BehaviorSubject(localStorage.getItem("token"));

        this.tokenSubject.pipe(
            filter(token => token != localStorage.getItem("token"))
        ).subscribe(token => {
            if (token == "") {
                localStorage.removeItem("token");
            } else {
                localStorage.setItem("token", token);
				localStorage.setItem("token_age", new Date().toString())
            }
        });

		if (!localStorage.getItem("token_age") && localStorage.getItem("token")) {
			localStorage.setItem("token_age", new Date().toString());
		}

		// Renew the token once every 5 days
		this.tokenSubject.pipe(
            switchMap(t => t == "" ? never() : timer(0, 3600000)),
            map(v => new Date(localStorage.getItem("token_age"))),
            filter(date => new Date().getTime() - date.getTime() > 432000000),
            switchMap(
                v => {
                    console.log("Renewing user token");
                    return this.api.rawPost("user/token").pipe(
                        map(r => r.headers.get("Authorization")),
                        filter(token => token != ""),
                        catchError(err => {
                            console.log("Error generating new user token: ", err);
                            return never();
                        }),
                    );
                }
            ),
        ).subscribe(token => this.tokenSubject.next(token));
    }
开发者ID:urandom,项目名称:readeef,代码行数:41,代码来源:auth.ts

示例4:

	// I return the given top-level state key as a stream (will always emit the current
	// key value as the first item in the stream).
	public select<K extends keyof StateType>( key: K ) : Observable<StateType[K]> {

		var selectStream = this.stateSubject.pipe(
			map(
				( state: StateType ) => {

					return( state[ key ] );

				}
			),
			distinctUntilChanged()
		);

		return( selectStream );

	}
开发者ID:bennadel,项目名称:JavaScript-Demos,代码行数:18,代码来源:simple.store.ts

示例5: filter

function getUiMetadata$(): Observable<UIMetadata> {
  if (uiMetadata$ !== null) {
    return uiMetadata$;
  }

  const actionsCompleteError$ = action$.pipe(
    filter(
      uiAction =>
        uiAction.action === UIActions.Completed ||
        uiAction.action === UIActions.Error
    )
  );

  const metadata$ = merge(pollingTimer$, actionsCompleteError$).pipe(
    switchMap(() => queryUIServiceForMetadata()),
    publishReplay(1),
    refCount()
  );
  uiMetadata$ = metadata$;

  return metadata$;
}
开发者ID:dcos,项目名称:dcos-ui,代码行数:22,代码来源:streams.ts

示例6: test

test('stops services if consequent logger upgrade fails', async () => {
  const onShutdown = new BehaviorSubject<string | null>(null);
  const mockOnShutdown = jest.fn(() => {
    onShutdown.next('completed');
    onShutdown.complete();
  });

  const mockLoggingConfig$ = new BehaviorSubject({ someValue: 'foo' });
  mockConfigService.atPath.mockReturnValue(mockLoggingConfig$);

  const root = new Root(config$, env, mockOnShutdown);
  await root.start();

  expect(mockOnShutdown).not.toHaveBeenCalled();
  expect(mockLoggingService.stop).not.toHaveBeenCalled();
  expect(mockServer.stop).not.toHaveBeenCalled();

  const loggingUpgradeError = new Error('logging config consequent upgrade failed');
  mockLoggingService.upgrade.mockImplementation(() => {
    throw loggingUpgradeError;
  });
  mockLoggingConfig$.next({ someValue: 'bar' });

  // Wait for shutdown to be called.
  await onShutdown
    .pipe(
      filter(e => e !== null),
      first()
    )
    .toPromise();

  expect(mockOnShutdown).toHaveBeenCalledTimes(1);
  expect(mockOnShutdown).toHaveBeenCalledWith(loggingUpgradeError);
  expect(mockLoggingService.stop).toHaveBeenCalledTimes(1);
  expect(mockServer.stop).toHaveBeenCalledTimes(1);

  expect(mockConsoleError.mock.calls).toMatchSnapshot();
});
开发者ID:rashidkpc,项目名称:kibana,代码行数:38,代码来源:index.test.ts

示例7: it

 it('should handle dynamic queries that return empty sets', done => {
   const ITEMS = 10;
   let count = 0;
   let firstIndex = 0;
   let namefilter$ = new BehaviorSubject<number|null>(null);
   const aref = createRef(rando());
   aref.set(batch);
   namefilter$.pipe(switchMap(name => {
     const filteredRef = name ? aref.child('name').equalTo(name) : aref
     return snapshotChanges(filteredRef);
   }),take(2)).subscribe(data => {
     count = count + 1;
     // the first time should all be 'added'
     if(count === 1) {
       expect(Object.keys(data).length).toEqual(3);
       namefilter$.next(-1);
     }
     // on the second round, we should have filtered out everything
     if(count === 2) {
       expect(Object.keys(data).length).toEqual(0);
     }
   }).add(done);
 });
开发者ID:Tetsumote,项目名称:angularfire2,代码行数:23,代码来源:snapshot-changes.spec.ts

示例8:

 function getLoadingCount$() {
   return loadingCount$.pipe(distinctUntilChanged());
 }
开发者ID:elastic,项目名称:kibana,代码行数:3,代码来源:http_setup.ts

示例9: subscribe

 public subscribe(next: () => void): sourcegraph.Unsubscribable {
     // Do not emit until the configuration is available.
     return this.data.pipe(filter(data => data !== null)).subscribe(next)
 }
开发者ID:JoYiRis,项目名称:sourcegraph,代码行数:4,代码来源:configuration.ts

示例10: getState

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

	// I get the current state as a stream (will always emit the current state value as
	// the first item in the stream).
	public getState(): Observable<StateType> {

		return( this.stateSubject.pipe( distinctUntilChanged() ) );

	}
开发者ID:bennadel,项目名称:JavaScript-Demos,代码行数:11,代码来源:simple.store.ts


注:本文中的rxjs.BehaviorSubject.pipe方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。