在 setInterval 中,异步函数进入队列并通过内存泄漏使应用程序冻结,在 javascript
//在我正在使用的函数下方。
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)
// 这就是异步函数在一个 setinterval 之后被调用,它在 React-Native 中获取队列并使应用程序冻结 // 读取特性
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)
}
}