我从按钮单击事件创建了一个流。该按钮对应于数据库上的创建操作。显然,我希望数据库操作只触发一次(至少在它完成之前)。有没有办法在返回createButtonStream
之前忽略事件Api.create
?即,第一个事件应该调用#Api.create,后续事件应该被忽略,直到#Api.create 返回。
createButtonStream
.flatMap(() => Api.create()) //Needs to fire once until doSomething() is called
.onValue(result => doSomething(result))
想到的唯一方法是使用全局状态......我宁愿不这样做。
//i don't wanna do this
let condition = true
createButtonStream
.filter(() => condition)
.map(() => condition = false)
.flatMap(() => Api.create())
.onValue(result => {condition = true; doSomething(result)})