web-dev-qa-db-fra.com

Emettre une seule valeur

Je voudrais émettre une seule valeur.

Selon cela post , ce qui suit devrait être valide:

var requestStream = Rx.Observable.just('https://api.github.com/users');

Cependant, cela ne fonctionne pas. just n'est pas défini.

A-t-il été déprécié? Y a-t-il quelque chose que je peux utiliser à la place?

23
pixelbits

Beaucoup de choses sont cachées dans: import 'rxjs/Rx'; Vous pourriez essayer Observable.of pour une seule valeur.

Cela fonctionne pour moi ( plunker ):

import {Component} from 'angular2/core';
import {Observable} from 'rxjs/Observable';
import 'rxjs/Rx';

@Component({
  selector: 'my-app',
  providers: [],
  template: `
    <div>
      <h2>Hello {{test | async}}</h2>     
    </div>
  `,
  directives: []
})
export class App {
    test: Observable<any> = Observable.of("I'm an observable");
    constructor() {
  }
}
40
Mark Meyer

.just(value) provient de RxJS v4 tandis que angular2 utilise la v5. Il a subi une profonde réécriture, et il est toujours en version bêta donc les opérateurs manquent/ont changé de nom dans la v5.

.of est très bien, comme MarkM l'a mentionné. Je voulais juste ajouter que vous pouvez également utiliser .from qui fonctionne si vous n'avez qu'une seule valeur ou un tableau de valeurs. Pour réutiliser l'exemple de votre réponse acceptée, vous utiliseriez quelque chose comme ( plunkr ):

//our root app component
import {Component} from 'angular2/core';
import {Observable} from 'rxjs/Observable';
import 'rxjs/Rx';

@Component({
  selector: 'my-app',
  providers: [],
  template: `
    <div>
      <h2>Hello {{test | async}}</h2>

    </div>
  `,
  directives: []
})
export class App {
    test: Observable<any> = Observable.from(["I'm an observable"]);
    constructor() {
  }
}
26
user3743222