Comment utiliser l'objet et de l'anti-rebond avec RxJs 5 à partir d'une chaîne d'entrée

Je ne comprends pas comment le Sujet de l'objet serait de travailler pour un Suggestion/service de Recherche que je suis en train de mettre en œuvre dans Angular2.

Disons que generateSuggestions est appelée chaque fois qu'un changement d'entrée, pour une saisie semi-automatique utilisation.

Je ne comprends pas pourquoi je ne suis pas en mesure de tirer quelque chose de la "next()" appel, texte dactylographié compilateur dit que c'est de retourner un type void.

Mon objectif serait de soumettre chaque modification d'un objet, qui va décider de s'appeler les uns les 500ms une fonction sur le serveur, sans que le spamming sur chaque entrée de clé.

import { Jsonp, Response, Http } from 'angular2/http';
import * as Rx from 'rxjs/Rx';
import { Injectable } from 'angular2/core';

@Injectable()
export class SearchService {
    queryStream = new Rx.Subject();

    constructor(public http: Http) {

    }

    generateSuggestions(query: string) {
        this.queryStream
            .next(query)
            .debounce(500) //Compiler error: Debounce does not exist on type "void"
            .map(
                query => this.http.get('hellow')
                        .map( (res: Response) => res.json() )
                        .subscribe( results => console.log(results) )
            );
    }
}

Je peux le faire dans la plaine JS/Tapuscrit mais je voulais vraiment essayer de travailler avec RxJs car il est déjà utilisé par Angular2.

Quelles sont les erreurs commises ici? La documentation est vraiment pauvre, sans aucun exemple sur leur site officiel.

  • Vous devriez regarder cette vidéo pour voir comment faire un typeahead.
  • J'ai fait quelques modifications après avoir vu cette vidéo, et la rxJs sujet ne fait pas partie du service plus.