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


TypeScript rxjs.ReplaySubject类代码示例

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


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

示例1: _getNpmPackageJson

/**
 * Get the NPM repository's package.json for a package. This is p
 * @param {string} packageName The package name to fetch.
 * @param {LoggerApi} logger A logger instance to log debug information.
 * @returns {Observable<JsonObject>} An observable that will put the pacakge.json content.
 * @private
 */
function _getNpmPackageJson(
  packageName: string,
  logger: logging.LoggerApi,
): Observable<JsonObject> {
  const url = `https://registry.npmjs.org/${packageName.replace(/\//g, '%2F')}`;
  logger.debug(`Getting package.json from ${JSON.stringify(packageName)}...`);

  let maybeRequest = npmPackageJsonCache.get(url);
  if (!maybeRequest) {
    const subject = new ReplaySubject<JsonObject>(1);

    const request = https.request(url, response => {
      let data = '';
      response.on('data', chunk => data += chunk);
      response.on('end', () => {
        try {
          const json = parseJson(data, JsonParseMode.Strict);
          subject.next(json as JsonObject);
          subject.complete();
        } catch (err) {
          subject.error(err);
        }
      });
      response.on('error', err => subject.error(err));
    });
    request.end();

    maybeRequest = subject.asObservable();
    npmPackageJsonCache.set(url, maybeRequest);
  }

  return maybeRequest;
}
开发者ID:fmalcher,项目名称:angular-cli,代码行数:40,代码来源:npm.ts

示例2: concatMap

        concatMap(options => {
          const subject = new ReplaySubject<NpmRepositoryPackageJson>(1);

          const client = new RegistryClient({
            proxy: {
              http: options[0],
              https: options[1],
            },
          });
          client.log.level = 'silent';
          const params = {
            timeout: 30000,
          };

          client.get(
            fullUrl,
            params,
            (error: object, data: NpmRepositoryPackageJson) => {
            if (error) {
              subject.error(error);
            }

            subject.next(data);
            subject.complete();
          });

          maybeRequest = subject.asObservable();
          npmPackageJsonCache.set(fullUrl.toString(), maybeRequest);

          return maybeRequest;
        }),
开发者ID:iwe7,项目名称:devkit,代码行数:31,代码来源:npm.ts

示例3: inject

 inject([AsyncTestCompleter], (async: AsyncTestCompleter) => {
   const responses: Response[] = [sampleResponse1, sampleResponse2];
   backend.connections.subscribe((c: MockConnection) => c.mockRespond(responses.shift() !));
   const responseObservable: ReplaySubject<Response> =
       backend.createConnection(sampleRequest1).response;
   responseObservable.subscribe(res => expect(res.text()).toBe('response1'));
   responseObservable.subscribe(
       res => expect(res.text()).toBe('response2'), null !, async.done);
 }));
开发者ID:Cammisuli,项目名称:angular,代码行数:9,代码来源:mock_backend_spec.ts

示例4: replaySubject

 replaySubject() {
     let replaySubject$ = new ReplaySubject(2); // Buffer 2 values for new subscribers
     interval(300).pipe(
         take(5)
     ).subscribe(replaySubject$);
     replaySubject$.subscribe(val => console.log(`Replay subject 1: ${val}`)); // 0, 1, 2, 3, 4
     setTimeout(() => {
         replaySubject$.subscribe(val => console.log(`Replay subject 2: ${val}`)); // 1, 2, 3, 4
     }, 1000);
 }
开发者ID:mr-Deviant,项目名称:sandbox,代码行数:10,代码来源:subjects.component.ts

示例5: Subject

  public static create<T = any>(server: T): ObservableSocketServer<T> {
    const init = new ReplaySubject<T>();
    init.next(server);

    return {
      init,
      connection: new Subject(),
      disconnect: new Subject(),
      server,
    };
  }
开发者ID:SARAVANA1501,项目名称:nest,代码行数:11,代码来源:observable-socket.ts

示例6:

            (error: object, data: NpmRepositoryPackageJson) => {
            if (error) {
              subject.error(error);
            }

            subject.next(data);
            subject.complete();
          });
开发者ID:baconwaffles,项目名称:angular-cli,代码行数:8,代码来源:npm.ts

示例7: async

 const bind = async (suboperation: RenderVariantOperation<V>) => {
   try {
     subject.next(await this.renderVariant(suboperation));
   }
   catch (exception) {
     if (operation.pessimistic === false) {
       subject.error(exception);
     }
   }
 };
开发者ID:sonukapoor,项目名称:angular-ssr,代码行数:10,代码来源:application.ts

示例8: Date

 .subscribe(articles => {
     if (articleSubject.observers.length > 0) {
         articleSubject.next(articles);
         feed.lastUpdatedAt = new Date();
         setTimeout(
             () => this.fetchArticles(feed, articleSubject),
             600000,
         );
     } else {
         articleSubject.complete();
     }
 });
开发者ID:danhooper,项目名称:home_page,代码行数:12,代码来源:rss.service.ts

示例9: handleMessage

 handleMessage(msg: proto.Message) {
   if (msg.type) {
     switch (msg.type) {
       case 'offer':
         log.webrtc('REMOTE OFFER', { offer: msg.offer })
         this.pc
           .setRemoteDescription({ type: 'offer', sdp: msg.offer })
           .then(() =>
             this.candidates.subscribe((ic) =>
               this.pc
                 .addIceCandidate(ic)
                 .catch((err) => log.webrtc('Failed to addIceCandidate', err))
             )
           )
           .then(() => this.pc.createAnswer())
           .then((answer) => this.pc.setLocalDescription(answer))
           .then(() => {
             const { sdp } = this.pc.localDescription as RTCSessionDescription
             log.webrtc('Send LOCAL ANSWER', { answer: sdp })
             this.send({ answer: sdp })
             this.sdpIsSent()
           })
           .catch((err) => this._onError(err))
         break
       case 'answer':
         log.webrtc('REMOTE ANSWER is received', { answer: msg.answer })
         this.pc
           .setRemoteDescription({ type: 'answer', sdp: msg.answer } as any)
           .then(() => {
             this.candidates.subscribe((ic) =>
               this.pc
                 .addIceCandidate(ic)
                 .catch((err) => log.webrtc(`${this.id}: Failed to add REMOTE Ice Candidate`, err))
             )
           })
           .catch((err) => this._onError(err))
         break
       case 'candidate':
         log.webrtc('REMOTE ICE CANDIDATE is received', msg.candidate)
         this.candidates.next(new env.RTCIceCandidate(msg.candidate as proto.IceCandidate))
         break
       default:
         this._onError(new Error('Buffer Protocol unknown message from the remote peer'))
     }
   } else {
     log.webrtc('REMOTE FINAL MESSAGE received')
     this.finalMessageReceived = true
     this.candidates.complete()
     if (this.finalMessageSent) {
       this.remotes.delete(this.id)
     }
   }
 }
开发者ID:openpaas-ng,项目名称:netflux,代码行数:53,代码来源:Remote.ts

示例10: it

    it("reacts to save click", fakeAsync(() => {
      component.ngOnInit();
      component.click();
      httpAction.next({ url: '', method: HttpMethod.Post, isComplete: false });
      flush();
      expect(component.isSaving).toBeTruthy();

      httpAction.next({ url: '', method: HttpMethod.Post, isComplete: true });
      flush();
      expect(component.isSaving).toBeFalsy();
      expect(component.isListening).toBeFalsy();
    }));
开发者ID:OysteinAmundsen,项目名称:gymsystems,代码行数:12,代码来源:save-button.component.spec.ts


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