我在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)