In setInterval , asynchronous function are getting in queue and making app freezes by memory leak, in javascript
//Below the function that's i am using.
setIntervalsForServices = async (
forkDevice, forkParsedData,
shockDevice, shockParsedData ) => {
this.manager.stopDeviceScan();
let startTimestamp = Date.now()
let counter = -1;
console.log("startTimestamppp", startTimestamp)
let localForkEachFrequencyPerSecondArrayData = [];
let localShockEachFrequencyPerSecondArrayData = [];
let localForkTotalFrequencyValue = [];
let localShockTotalFrequencyValue = [];
if (this.state.recordingStart) {
this.baseSecondInterval = setInterval(() => {
let forkFrequencyIncremental = 0;
let shockFrequencyIncremental = 0;
let frequencyIncremental = 0;
let baseFrequencyIntervalTime = this.state.frequency > 0 ? parseInt(1000 / this.state.frequency) : 1000
var root = this
counter++
if (this.state.recordingStart) {
this.baseFrequencyIntervalArray[counter] = setInterval((localCounter) => {
let currentTimestampX = Date.now() - startTimestamp;
forkFrequencyIncremental++;
shockFrequencyIncremental++;
frequencyIncremental++;
console.log("Data in inner setinterval ", this.baseFrequencyIntervalArray, localCounter)
// That's the asynchronous function gets called after a setinterval which getting queue and making app freezes in React-Native // Read Characteristic
this.setCharacteristicsToFetchData(
forkDevice, forkParsedData, shockDevice, shockParsedData,
currentTimestampX, localCounter,
localForkEachFrequencyPerSecondArrayData, localShockEachFrequencyPerSecondArrayData,
localForkTotalFrequencyValue, localShockTotalFrequencyValue, this.baseFrequencyIntervalArray[counter]
)
}, this.state.frequency > 0 ? parseInt(1000 / this.state.frequency) : 1000, counter)
}
this.setState({
xData: this.state.xData + 1
})
}, 1000)
}
}