示例#1
0
export function firebaseObjectObservableFactory(ref: firebase.database.Reference): Observable<FirebaseRecord> {
    return Observable.create((subscriber: Subscriber<any>) => {
        let listenFn = ref.on('value', (snap: firebase.database.DataSnapshot) => {
            let value = firebaseRecordFactory(snap);
            subscriber.next(value);
        }, err => {
              if (err) {
                  subscriber.error(err);
                  subscriber.complete();
              }
        });
        return () => {
            ref.off('value', listenFn);
        };
    });
}
  randomWalk(startStep, minChange, maxChange) {
    return Observable.create((observer) => {
      let running = true;
      let step = startStep;
      let next = () => {
        if (running) {
          step += this.nextInt(minChange, maxChange);
          observer.next();
          setTimeout(next, step);
        }
      };
      next();

      return () => running = false;
    });
  }
    loadFormUrl() {
        return Observable.create((observer) => {
            this.http.get('form-url.txt')
    			.map((res) => res.text())
    			.subscribe((data) => {

                    const results = /\/d\/(.*)\//.exec(data);

                    if (results) {
                        const url = results[1];
                        observer.next(url);
                        return;
                    }
    			});
        });
    }
  public salvar(usuario, userType) {
    usuario = JSON.parse(JSON.stringify(usuario));;

    if (userType == 'pf') usuario.empresa = null;
    else usuario.pessoa = null;

    return Observable.create(observer => {
      this.apiService.post('/usuarios', usuario)
        .map(res => res.json())
        .subscribe(
          data => observer.next(true),
          err => observer.next(false),
          () => observer.complete()
        );
    });
  }
  constructor(public title: string, public createdOn: Date, public items: any[]) {
    this.title = title;
    this.createdOn = createdOn;
    this.items = items;
    this.completed = 0;

    this.items.forEach((item) => {
      if (item.checked) {
        this.completed++;
      }
    });

    this.checklist = Observable.create(observer => {
      this.checklistObserver = observer;
    });
  }
示例#6
0
  getAllTracktors(): Observable<Tracktor> {
    return Observable.create(observer => {
      let listener = this.tracktorsQuery.on('child_added', snapshot => {
        let data = snapshot.val();
        observer.next(new Tracktor(
          snapshot.key,
          data.hours, 
          data.name
        ));
      }, observer.error);

      return () => {
        this.tracktorsQuery.off('child_added', listener);
      };
    });
  }
 constrainedRandomWalk(startStep, minStep, maxStep, minChange, maxChange) {
   return Observable.create((observer) => {
     let running = true;
     let step = startStep;
     (async () => {
       while (running) {
         step += this.nextInt(minChange, maxChange);
         step = Math.min(step, maxStep);
         step = Math.max(step, minStep);
         observer.next();
         await this.sleep(step);
       }
     })();
     return () => running = false;
   });
 }
    beforeEach(function () {
        mockActionService = {
            getActions: function () {}
        };
        formBuilder = new FormBuilder();

        getActionsSpy = spyOn(mockActionService, 'getActions').and.returnValue(
            Observable.create(observer => {
                observer.next([
                        new Action({
                            id: 1, 
                            boardId: 1, 
                            description: "I'm a message", 
                            owner: 'Owner1', 
                            creationDate: "2016-01-01T21:30:00Z",
                            lastModifiedDate: "2016-01-01T21:30:00Z"
                        }),
                        new Action({
                            id: 2, 
                            boardId: 1,
                            description: "I'm another message", 
                            owner: 'ACTIVE', 
                            creationDate: "2016-01-01T21:30:00Z", 
                            lastModifiedDate: "2016-01-01T21:30:00Z"
                        }),
                        new Action({
                            id: 3,
                            boardId: 1,
                            description: "I'm a different message",
                            owner: 'ACTIVE',
                            creationDate: "2016-01-01T21:32:00Z",
                            lastModifiedDate: "2016-01-01T21:32:00Z"
                        }),
                        new Action({
                            id: 4,
                            boardId: 1,
                            description: "I'm a different message",
                            owner: 'ARCHIVED',
                            creationDate: "2016-01-01T21:32:00Z",
                            lastModifiedDate: "2016-01-01T21:32:00Z"
                        })
                    ]
                );
                observer.complete();
            })
        );
    });
示例#9
0
  getAllFields(): Observable<Field> {
    return Observable.create(observer => {
      let listener = this.fieldsQuery.on('child_added', snapshot => {
        let data = snapshot.val();
        observer.next(new Field(
          snapshot.key,
          data.name,
          data.prop,
          data.color
        ));
      }, observer.error);

      return () => {
        this.fieldsQuery.off('child_added', listener);
      };
    });
  }
示例#10
0
 getPatient(id: number) : Observable<IPatientReview> {
     if (this.patients) {
         //filter using cached data
         return this.findPatientObservable(id);
     } else {
         //Query the existing Patients to find the target Patient
         return Observable.create((observer: Observer<IPatientReview>) => {
             this.getPatients().subscribe((patients: IPatientReview[]) => {
                 this.patients = patients;
                 const patient = this.filterPatients(id);
                 observer.next(patient);
                 observer.complete();
             })
         })
             .catch(this.handleError);
     }
 }