rxjs observables.de(objet) renvoie {“_isScalar”: “”, “value”: {}, “planificateur”: “” } au lieu de la valeur

Je suis assez nouveau à l'rxjs.

J'ai essayé de créer une fonction qui s'exécute une angulaires 2 de la requête http comme ça:

syncFromApi$() {

  //create Headers
  ...

  let ob$ = this.http.post(
    CONFIG_APP.apiEndpoint + '/sync/app',
    '',
    { headers: headers }
  )
  .map((response:Response) => {
    return Observable.of({type: "success", payload: response.json()});
  })
  .catch(function (err:Response) {
    return Observable.of({type: "error", payload: err.json()});
  });

  return ob$;
}

En bref, quand avoir du succès, je suis de retour d'un Objet qui indique si la requête a été couronnée de succès. Après que j'ai envie de changer de carte en fonction de l'objet retourné:

let o$ = syncFromApi$()
  .switchMap((value) => {
    console.log("value", JSON.stringify(value, null, 0));
    if (data.type === 'success') {
      return Observable.of(1);
    } else if (data.type === 'error') {
      return Observable.of(2);
    }
  });

Et voici le problème que j'ai le visage. De la console.journal(...) les sorties d'un objet comme celui-ci:

value, {"_isScalar": true, "value": THIS_IS_WHAT_I_NEED_AS_VALUE, "scheduler": null}

Mais j'ai besoin que l'objet, je suis retourné avec la syncFromApi fonction$.

Quelqu'un peut m'expliquer, si je suis en utilisant observable.of() dans la mauvaise manière?

J'ai essayé observable.of(1) et retourne 1 comme valeur. Si j'utilise un objet (observable.of({ type: "myType", message: "myMessage" })), elle renvoie un objet habillage de l'objet j'ai besoin avec les touches "_isScalar", "valeur" et de "planificateur".

Merci d'avance.

Pourquoi avez-vous retourner un Observables à partir de votre fonction de mappage, et pas seulement l'objet? Vous ne voulez pas une Observable des Observables.
plus tard, je souhaite m'abonner à la chaîne des observables
carte de transformer une observable de x dans une observable de y grâce à une fonction de transformation de x en y. Pas besoin d'envelopper y dans une Observable.
si je supprime Observables.de() autour de l'objet dans le bloc catch, mon tapuscrit compilateur se plaint avec le message suivant: app/app/services/state.ts|116 col 14 error| Argument of type '(err: Response) => { type: string; payload: any; }' is not assignable to parameter of type '(err: any, caught: Observable<{ type: string; payload: any; }>) => Observable<{}>'. Type '{ type: string; payload: any; }' is not assignable to type 'Observable<{}>'. Property '_isScalar' is missing in type '{ type: string; payload: any; }'.
Ce qui est dans les captures semble OK pour moi. Quelle est la carte qui ne fonctionne pas.

OriginalL'auteur divramod | 2016-05-02