我有一個情況,我從一個客戶端得到兩個字符串的數組,並且我在它們上面映射,在服務器端爲它們中的每個打開一個流。 (在代碼示例中,我使用的是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)
})
}
並且在將值提高後,我將更新的對象發送回客戶端。很顯然這個工作,但我想用更實用的方法來做這個更新操作。
我已經嘗試了拉姆達和Lodash/Fp的一些方法,但它似乎不可能從不同的範圍更新對象。
通常情況下發生的是值碰撞,然後他們回到他們在下一個時間間隔的原始值。
是否有一種可行的方式,通過某種功能setState
從內部範圍更新此數據?
在功能方法中,您不更新值。你創造新的。 – Bergi