當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。