2017-04-18 2 views
0

J'ai un flux daysFromApi$ avec des données (jours avec repas) de l'API. Quand un bouton 'delete' est cliqué, j'appuie mealId sur this.deleteBus $. Je veux avoir une nouvelle valeur dans le flux: daysAfterDelete$. Mon problème est que l'événement 'first' est toujours déclenché, mais 'done' ne se déclenche jamais, flatMapLatest ne fonctionne pas, map non plus.bacon.js comment combiner le flux avec un autre basé sur le premier?

const daysAfterDelete$ = this.deleteBus$ 
     .log('first') // triggers when new mealId is pushed to deleteBus(a button is clicked) 
     .flatMapLatest(mealId => Bacon.combineAsArray(daysFromApi$, mealId)) 
     .log('done'); // never triggers 

Je veux obtenir suivant flux:

daysFromApi$ :  A   B        C 
deleteBus$  :   1    2    3 
daysAfterDelete$:   (1,A)  (2,B)   (3,B) 

Répondre

1

Pas tout à fait sûr de ce que vous voulez atteindre, mais si vous voulez obtenir la dernière valeur de « jours » lorsque la suppression est cliqué, vous peut utiliser sampledBy. https://www.webpackbin.com/bins/-Ki3lTzM8PM4zeJKK9C0

+0

Merci! ça a marché! C'est ce que je cherchais. Je suis novice en programmation réactive, et le vocabulaire qui me manque me manque, c'est pourquoi ma question peut sembler si confuse. –