关于如何实现定时器功能的任何帮助或想法



我在react native,中有以下代码

let pub='';
let x= '';
// global variables

setInterval(() = {
const value = await AsyncStorage.getItem('users');//read data from async storage
pub = JSON.parse(value);
for (let i = 0; i < pub.length; i++) {
x = pub[i].id;
console.log('value of id >>', x);  // the value of x is printed every 30 secs, //if there are 3 values of x as 1,2,3    
//I want 1 to be printed first 30 secs ,2 next 30 sec, 3 to be priint next
30sec and again goback to 1 and so on..how to do ?

},30000)

我希望id的值每30秒打印一次,递增

例如,
如果x有1,2,3。我要打印第一个30秒1,
我要打印第二个30秒2,
打印第三个30秒3,并重复相同的操作。。。

不需要for循环。具有递增索引的间隔可以解决这一问题。这里有一个例子,一旦达到它的长度,就会重复或停止间隔——在这个例子中,它被设置为3秒。还要注意,箭头函数() = {中的修复应该是() => {

//const value = await AsyncStorage.getItem('users'); 
//pub = JSON.parse(value);
let pub = [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 7}, {'id': "F"}];
let id_index = 0,
repeat = true
const interval = setInterval(() => {
x = pub[id_index].id;
console.log('value of id >>', x);
if (id_index++ >= pub.length-1) {
if (repeat) id_index = 0; //reset
else clearInterval(interval)
}
}, 500)
// just in case you have to stop
// clearInterval(interval)

你可以在下面做一些类似的事情

const value = await AsyncStorage.getItem('users');//read data from async storage
pub = JSON.parse(value);
if(!Array.isArray(pub))
return; 
let i =0;
setInterval(() => { 
console.log('value of id >>', pub[i].id); 
i++;
},30000)

相关内容

最新更新