rxjs ¿cómo se emite un único valor


Me gustaría emitir un solo valor.

De acuerdo con este post , lo siguiente debe ser válido:

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

Sin Embargo, esto no funciona. just no está definido.

¿Ha sido obsoleto? ¿Hay algo que pueda usar en su lugar?

Author: user3743222, 2016-01-20

2 answers

Muchas de las cosas están guardadas en: import 'rxjs/Rx'; Puedes probar Observable.of para un solo valor.

Esto funciona para mí (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() {
  }
}
 38
Author: Mark Meyer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-20 08:01:06

.just(value) es de RxJS v4 mientras que angular2 está usando la v5. Ha pasado por una extensa reescritura, y todavía está en beta, por lo que faltan operadores/nombres cambiados en la v5.

.of está bien, como mencionó MarkM. Solo quería agregar que también puede usar .from que funciona si tiene solo un valor, o una matriz de valores. Para reutilizar el ejemplo de tu respuesta aceptada, usarías algo como (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
Author: user3743222,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-22 14:31:53