Cómo obtener un observable para devolver datos inmediatamente y cada 5 segundos a partir de entonces

Quiero crear un observable que devuelva datos de un webapi. Me gustaría que devuelva los datos de inmediato y sondee la API cada 10 segundos. El siguiente código muestra que estoy usando el método 'intervalo'. Pero esto retrasa el primer conjunto de datos en 10 segundos. ¿Cómo consigo que el primer flujo de datos se reduzca sin demora inicial?

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;
            });
    }
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta