Pregunta rxjs cómo se emite un valor único


Me gustaría emitir un solo valor.

De acuerdo a esto enviar, 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 desaprobado? ¿Hay algo que pueda usar en su lugar?


21
2018-01-20 07:22


origen


Respuestas:


Muchas de las cosas están escondidas en: import 'rxjs/Rx'; Puede intentar Observable.of por 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
2018-01-20 07:53



.just(value) es de RxJS v4 mientras angular2 está usando el v5. Ha pasado por una reescritura extensa, y todavía está en beta, por lo que los operadores no tienen nombres / han cambiado en v5.

.of está bien, como mencionó MarkM. Solo quería agregar que también puedes usar .from que funciona si solo tiene un valor o una matriz de valores. Para reutilizar el ejemplo de su respuesta aceptada, usaría 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
2018-01-22 14:31