5

ボタンクリックイベントからストリームを作成しました。このボタンは、データベースでの作成アクションに対応しています。明らかに、データベース アクションを 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)})
4

2 に答える 2