Подтвердить что ты не робот

Rxjs, как вы испускаете одно значение

Я хотел бы испустить одно значение.

В соответствии с этим сообщением должно быть справедливо следующее:

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

Однако это не работает. just не определен.

Было ли это устаревшим? Есть ли что-то, что я могу использовать вместо этого?

4b9b3361

Ответ 1

Многие вещи спрятаны в: import 'rxjs/Rx'; Вы можете попробовать Observable.of для одного значения.

Это работает для меня (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() {
  }
}

Ответ 2

.just(value) из RxJS v4, а angular2 использует v5. Он прошел обширную переписку и по-прежнему находится в бета-версии, поэтому операторы теряют/меняют имена в версии 5.

.of просто отлично, как упоминал MarkM. Я просто хотел добавить, что вы также можете использовать .from, который работает, если у вас есть только одно значение или массив значений. Чтобы повторно использовать пример из вашего принятого ответа, вы должны использовать что-то вроде (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() {
  }
}