2016-01-20 20 views
18

Chciałbym emitować pojedynczą wartość.rxjs w jaki sposób emitujesz pojedynczą wartość?

Według tego post dodaje powinny być ważne:

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

Jednak to nie działa. just nie jest zdefiniowany.

Czy został przestarzały? Czy jest coś, co mogę zamiast tego wykorzystać?

Odpowiedz

33

Wiele rzeczy jest ukrytych w: import 'rxjs/Rx'; Możesz spróbować Observable.of dla pojedynczej wartości.

Działa to dla mnie (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() { 
    } 
} 
+0

Dobrze, dziękuję! – pixelbits

25

.just(value) wynosi od RxJS v4 podczas angular2 używa v5. Przeszliśmy przez obszerną przeróbkę i nadal jest w fazie beta, więc operatorzy nie mają/zmienili nazw w wersji 5.

.of jest w porządku, jak wspomniał MarkM. Chciałem tylko dodać, że możesz również użyć .from, która działa, jeśli masz tylko jedną wartość lub tablicę wartości. Aby ponownie użyć przykładu z zaakceptowanej odpowiedzi, możesz użyć czegoś podobnego (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() { 
    } 
} 
+0

dla tablicy obiektów "od" jest błąd rzucania: Nie można znaleźć innego obiektu obsługującego "[obiekt obiektu]" i "z" działa dobrze –

Powiązane problemy