私はクライアントから2つの文字列の配列を取得し、それぞれのストリームをサーバー側に開くようにマップします。 (コード例では、実際のデータストリームの代わりにsetInterval
を使用してできるだけ単純なものにしています)。内部スコープから機能的アプローチで値を更新するにはどうすればよいですか?
また、このデータをオブジェクト内で再構成するので、更新する値を保持できます後で。 setInterval
がトリガーされるたびに、私はマップしているイテレートに対応するキーの値を増やします。
const stream = (arr) => {
// arr = ['firstValue', 'secondValue']
// the object to store the values which will be sent to the client
const restructure = {
[arr[0]]: 0,
[arr[1]]: 0
}
arr.map((i) => {
// setInterval as a placeholder stream
setInterval(() => {
restructure[i]++
// instead of logging, the updated object is sent to client
console.log(restructure)
}, 2000)
})
}
値をバンプアップした後、更新されたオブジェクトをクライアントに送り返します。明らかにこれは機能しますが、より機能的なアプローチでこのアップデート操作を行いたいと思います。
RamdaとLodash/Fpからいくつかの方法を試しましたが、異なるスコープのオブジェクトを更新することは不可能なようです。
通常、何が起きるのかは、値がバンプされ、次の間隔で元の値に戻ることです。
内部のスコープから何らかの機能を介してこのデータを更新する実行可能な方法はありますかsetState
?
機能的なアプローチでは、値を更新しません。新しいものを作成します。 – Bergi