2017-07-26 1 views
1

Existe-t-il un opérateur permettant de réduire les émissions en fonction du nombre?RxJS - Valeur d'émission après réception n

Je veux essentiellement répéter l'appel de saut. Dans l'exemple ci-dessous, j'aimerais sauter 5, émettre une valeur et répéter.

export default function errorHandler(action$){ 
    action$.ofType(types.ERROR) 
    /* After every n emissions received, emit once */ 
    .map(someAction) 
} 

Répondre

3

Vous pouvez utiliser bufferCount, qui émettra une fois qu'il a tamponné le nombre spécifié d'actions.

Avec la terminologie de RxJS, la limitation impliquerait la première des actions mises en mémoire tampon étant émis:

export default function errorHandler(action$){ 
    action$.ofType(types.ERROR) 
    .bufferCount(5) 
    .map((actions) => actions[0]); 
} 

Emitting la dernière place une action tampon serait appelée debouncing, dans la terminologie de RxJS:

export default function errorHandler(action$){ 
    action$.ofType(types.ERROR) 
    .bufferCount(5) 
    .map((actions) => actions[actions.length - 1]); 
}