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


TypeScript ReplaySubject.next方法代码示例

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


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

示例1: return

    firebase.database().ref(notesIndexRefPath).orderByChild('timestamp').limitToLast(100).on('value', snapshot => {
      const noteIndices: FirebaseNoteIndex[] = lodash.toArray(snapshot.val()); // rename, reshape

      let cachedNotes = this.store.cachedNotes; // Storeに保存してあるcachedNotesを取得する

      /* 更新の必要があるnoteIndexだけを抽出する(noteidとtimestampが同一のnoteは更新の必要がない) */
      let differenceNoteIndices = noteIndices.filter(noteIndex => {
        const compareNotes = cachedNotes.filter(note => note.noteid === noteIndex.noteid);
        return (compareNotes.length > 0 && compareNotes[0].timestamp === noteIndex.timestamp) ? false : true;
      });
      differenceNoteIndices = lodash.orderBy(differenceNoteIndices, ['timestamp'], ['desc']); // timestampの降順で並び替える
      console.log('differenceNoteIndices: ');
      console.log(differenceNoteIndices);

      /* noteIndexに基づいてnoteを取得する。onceメソッドは非同期のため完了は順不同となる。(本当に?) */
      if (differenceNoteIndices.length > 0) {        
        differenceNoteIndices.forEach(noteIndex => {
          const notesRefPath = 'notes/' + noteIndex.noteid;
          firebase.database().ref(notesRefPath).once('value', snapshot => {
            const note: FirebaseNote = snapshot.val(); // rename
            cachedNotes.unshift(note); // cachedNotesの先頭にnoteを追加
            cachedNotes = lodash.uniqBy(cachedNotes, 'noteid'); // noteidの重複をまとめる。(先頭寄りにあるものを生かす)
            cachedNotes = lodash.orderBy(cachedNotes, ['timestamp'], ['desc']); // timestampの降順で並べ替える
            this.notes$.next(cachedNotes);
            this.store.cachedNotes = cachedNotes; // 新しいcachedNotesをStoreのcachedNotesに書き戻す
          });
        });
      } else { // differenceNoteIndices.length === 0
        this.notes$.next(cachedNotes);
      }
    }, err => {
开发者ID:ovrmrw,项目名称:jspm-angular2-sample,代码行数:31,代码来源:note-list.service.ts

示例2:

 firebase.database().ref(notesRefPath).once('value', snapshot => {
   const note: FirebaseNote = snapshot.val(); // rename
   cachedNotes.unshift(note); // cachedNotesの先頭にnoteを追加
   cachedNotes = lodash.uniqBy(cachedNotes, 'noteid'); // noteidの重複をまとめる。(先頭寄りにあるものを生かす)
   cachedNotes = lodash.orderBy(cachedNotes, ['timestamp'], ['desc']); // timestampの降順で並べ替える
   this.notes$.next(cachedNotes);
   this.store.cachedNotes = cachedNotes; // 新しいcachedNotesをStoreのcachedNotesに書き戻す
 });
开发者ID:ovrmrw,项目名称:jspm-angular2-sample,代码行数:8,代码来源:note-list.service.ts

示例3: next

 next() {
   if (this._data.current < this._data.members.length - 1) {
     this._data.current += 1;
   } else {
     this._data.current = 0;
     this._data.turn += 1;
   }
   this.data$.next(this._data);
 }
开发者ID:Vargash,项目名称:DMVTools,代码行数:9,代码来源:encounter-data.ts

示例4: start

    public start(task: () => Promise<any>): Observable<boolean> {
        let working = new ReplaySubject<boolean>();
        working.next(true);
        task().then(() => {
            working.next(false);
        }).catch(() => {
            working.next(false);
        });

        return working.asObservable();
    }
开发者ID:cedar-ave,项目名称:Fabric.Cashmere,代码行数:11,代码来源:work-tracker.service.ts

示例5: startObservable

    public startObservable(task: () => Subscription): Observable<boolean> {
        let working = new ReplaySubject<boolean>();
        let taskSubscription = task();
        working.next(true);

        taskSubscription.add(() => {
            working.next(false);
            taskSubscription.unsubscribe();
        });

        return working.asObservable();
    }
开发者ID:cedar-ave,项目名称:Fabric.Cashmere,代码行数:12,代码来源:work-tracker.service.ts

示例6: initNoteListReadStream

  /* 
    notesIndexツリーのindexを取得してからnotesツリーのnote実体を取得する、という多段クエリ。
    Data Transferを節約するため、更新の必要があるnodeIndexだけを抽出する。 
  */
  initNoteListReadStream(): Observable<FirebaseNote[]> {
    // this.experiment();
    const uid = this.store.currentUser.uid; // shorthand
    const notesIndexRefPath = 'notesIndex/' + uid;

    this.notes$.next(this.store.cachedNotes); // とりあえずキャッシュしてあるノートをViewに表示させる

    /* onメソッドはObservableを生成し、offメソッドをコールするまで待機し続ける。 */
    firebase.database().ref(notesIndexRefPath).orderByChild('timestamp').limitToLast(100).on('value', snapshot => {
      const noteIndices: FirebaseNoteIndex[] = lodash.toArray(snapshot.val()); // rename, reshape

      let cachedNotes = this.store.cachedNotes; // Storeに保存してあるcachedNotesを取得する

      /* 更新の必要があるnoteIndexだけを抽出する(noteidとtimestampが同一のnoteは更新の必要がない) */
      let differenceNoteIndices = noteIndices.filter(noteIndex => {
        const compareNotes = cachedNotes.filter(note => note.noteid === noteIndex.noteid);
        return (compareNotes.length > 0 && compareNotes[0].timestamp === noteIndex.timestamp) ? false : true;
      });
      differenceNoteIndices = lodash.orderBy(differenceNoteIndices, ['timestamp'], ['desc']); // timestampの降順で並び替える
      console.log('differenceNoteIndices: ');
      console.log(differenceNoteIndices);

      /* noteIndexに基づいてnoteを取得する。onceメソッドは非同期のため完了は順不同となる。(本当に?) */
      if (differenceNoteIndices.length > 0) {        
        differenceNoteIndices.forEach(noteIndex => {
          const notesRefPath = 'notes/' + noteIndex.noteid;
          firebase.database().ref(notesRefPath).once('value', snapshot => {
            const note: FirebaseNote = snapshot.val(); // rename
            cachedNotes.unshift(note); // cachedNotesの先頭にnoteを追加
            cachedNotes = lodash.uniqBy(cachedNotes, 'noteid'); // noteidの重複をまとめる。(先頭寄りにあるものを生かす)
            cachedNotes = lodash.orderBy(cachedNotes, ['timestamp'], ['desc']); // timestampの降順で並べ替える
            this.notes$.next(cachedNotes);
            this.store.cachedNotes = cachedNotes; // 新しいcachedNotesをStoreのcachedNotesに書き戻す
          });
        });
      } else { // differenceNoteIndices.length === 0
        this.notes$.next(cachedNotes);
      }
    }, err => {
      console.error(err);
    });
    this.disposableRefPaths.push(notesIndexRefPath);
    return this.notes$;
  }
开发者ID:ovrmrw,项目名称:jspm-angular2-sample,代码行数:48,代码来源:note-list.service.ts

示例7:

 firebase.database().ref(usersRefPath).on('value', snapshot => {
   returner$.next(snapshot.val());
 });
开发者ID:ovrmrw,项目名称:jspm-angular2-sample,代码行数:3,代码来源:app.service.ts

示例8:

 .subscribe(() => this.userSource.next(false));
开发者ID:robertjd,项目名称:sp-ng2,代码行数:1,代码来源:stormpath.service.ts

示例9:

 firebase.database().ref(notesRefPath).on('value', snapshot => {
   const note: FirebaseNote = snapshot.val(); // rename
   returner$.next(note);
 });
开发者ID:ovrmrw,项目名称:jspm-angular2-sample,代码行数:4,代码来源:note.service.ts


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