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?
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() {
}
}
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() {
}
}
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