小编Fee*_*Fum的帖子

如何让observable立即返回数据,之后每5秒返回一次

我想创建一个从webapi返回数据的observable.我希望它立即返回数据,并每隔10秒轮询一次API.下面的代码显示我正在使用'interval'方法.但这会将第一组数据延迟10秒.如何在没有初始延迟的情况下获得第一次数据刷新?

export class EventService {
    public events$: Observable<Event[]>;
    private _eventsObserver: Observer<Event[]>;
    private pollInterval: number = 5000;

    private _dataStore: {
        events: Event[];
    };

    constructor(private http: Http) {
        this._dataStore = { events: [] };

        this.events$ = new Observable(observer => this._eventsObserver = observer)
            .startWith(this._dataStore.events)
            .share();
    }

    pollEvents() {
        return Observable.interval(10000)
            .switchMap(() => {
                return this.http.get('app/resources/data/scheduleevents.json')
                    .map((responseData) => {
                        return responseData.json();
                    });
            })
            .map((events: Array<any>) => {
                let result: Array<Event> = [];
                if (events["data"]) {
                    events["data"].forEach((event) => {
                        result.push(event);
                    });
                }
                return result;
            }); …
Run Code Online (Sandbox Code Playgroud)

rxjs rxjs5

37
推荐指数
2
解决办法
2万
查看次数

在angular2中,是否可以获得可观察的订户数量?

我想可以继续订阅一个observable而忘记取消订阅.我怀疑这是在我的申请中发生的.观察者是否有一个属性可以给我一个挂掉它的订户的数量?

rxjs angular

9
推荐指数
1
解决办法
5212
查看次数

标签 统计

rxjs ×2

angular ×1

rxjs5 ×1