8
votes

Comment prendre la première occurrence puis Supprimer des événements pendant 2 secondes (RxJS)

Je pense que RXJS devrait parfaitement s'adapter à Suppress Dublicate Button clique sur 2 secondes. Cependant, je lutt avec la mise en œuvre.

var $button = $('#myButton').button();
$button
    .toObservable("click")
    //.Throttle(2000) // Wouldn't fire the first event instantly :-(
    .Subscribe(function(){ alert('clicked'); }); 


1 commentaires

Vous pouvez probablement utiliser xgrommx.github.io/rx-book/ Contenu / Observable / ... comme BufferwithTimeOrcount (2000, 1)


5 Réponses :


2
votes

En fait, Matthew de l'équipe RX était si gentille de m'envoyer la réponse via Twitter: http://twitter.com/#!/mattpodwysocki/status/43731812513624064

Donc, ce que vous pouvez faire est que: xxx

http://jsfiddle.net/cburgdorf/mumfa/5/

Toutefois: pour des raisons d'exercice. Je préférerais que cela fonctionne sans réglage activer / désactiver mais simplement Suppression des événements pendant 2 secondes après la première occurrence

dans le discours de marbre, je cherche ceci:

O Stream: x --- x --- x --- x --- x --- x --- x

rxstream: x -------------- -X -------------- x


0 commentaires

0
votes

Crazy Delicious!

Je l'ai eu: xxx


0 commentaires

3
votes

C'est comme ça que je le ferais dans RxNet (désolé, je ne connais pas RxJS, donc pas sûr de si c'est possible là): XXX


0 commentaires

5
votes

J'ai converti des sergeys Répondez à JavaScript et pensez que cela devrait être la dernière façon de partir.

var $button = $('#myButton').button();
    $button
        .toObservable("click")
        .OneInTime(2000)
        .Subscribe(function(){ console.log('clicked'); });


0 commentaires

0
votes

J'ai beaucoup appris de ce fil et je suis en fait la l'itération délicieuse em> est de loin la plus propre. Mais je voulais retourner un flux d'événements compose - comme dans les les sergeys convertis répondent em>. Alors voici ma méthode ...

var goToChaseTrigger = $scope.$createObservableFunction('goToChase');
var throttleAfterFirst = goToChaseTrigger
    .throttleOnFirst(2000)
    .subscribe(function(d){console.log('throttleOnFirst>',d)})


1 commentaires

Bravo pour utiliser les fixations de Rx angulaires :)