ボタンクリックイベントからストリームを作成しました。このボタンは、データベースでの作成アクションに対応しています。明らかに、データベース アクションを 1 回だけ (少なくとも完了するまで) 実行する必要があります。戻る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)})