bacon.js 如何基于 first 将流与另一个流合并?
bacon.js how to combine stream with another based on first ?
我有一个流 daysFromApi$
,其中包含来自 API 的数据(用餐天数)。单击 'delete' 按钮时,我将 mealId 推送到 this.deleteBus$。我想在流中有一个新值:daysAfterDelete$
。我的问题是 'first' 事件总是被触发,但 'done' 永远不会触发,flatMapLatest
不起作用,map
也不会。
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
我想获得以下流程:
daysFromApi$ : A B C
deleteBus$ : 1 2 3
daysAfterDelete$: (1,A) (2,B) (3,B)
不太确定你想要实现什么,但是如果你想在点击删除时得到"days"的最新值,你可以使用sampledBy
。 https://www.webpackbin.com/bins/-Ki3lTzM8PM4zeJKK9C0
我有一个流 daysFromApi$
,其中包含来自 API 的数据(用餐天数)。单击 'delete' 按钮时,我将 mealId 推送到 this.deleteBus$。我想在流中有一个新值:daysAfterDelete$
。我的问题是 'first' 事件总是被触发,但 'done' 永远不会触发,flatMapLatest
不起作用,map
也不会。
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
我想获得以下流程:
daysFromApi$ : A B C
deleteBus$ : 1 2 3
daysAfterDelete$: (1,A) (2,B) (3,B)
不太确定你想要实现什么,但是如果你想在点击删除时得到"days"的最新值,你可以使用sampledBy
。 https://www.webpackbin.com/bins/-Ki3lTzM8PM4zeJKK9C0