带有数组的for循环中的Javascript延迟
嘿,伙计们,我被难住了,我有这段代码。它从google sheets中获取一些数据并将其放入一个数组中。更具体地说,它需要一个地址和金额。它可以在数组中生成一个小数组。然后我得到阵列并循环通过它,但我希望它在下一个阵列之前暂停10秒。这就是我所拥有的:带有数组的for循环中的Javascript延迟,javascript,arrays,for-loop,delay,Javascript,Arrays,For Loop,Delay,嘿,伙计们,我被难住了,我有这段代码。它从google sheets中获取一些数据并将其放入一个数组中。更具体地说,它需要一个地址和金额。它可以在数组中生成一个小数组。然后我得到阵列并循环通过它,但我希望它在下一个阵列之前暂停10秒。这就是我所拥有的: const randomArray = []; for (var i = 0; i < rows.length; ++i) { let
const randomArray = [];
for (var i = 0; i < rows.length; ++i) {
let row = rows[i];
randomArray.push(row);
}
for (const data of randomArray) {
setTimeout(() => {
const AddressID = data[0];
const Amount = parseFloat(data[1]);
console.log(AddressID, Amount);
}, 5 * 1000);
}
}
const randomArray=[];
对于(变量i=0;i{
const AddressID=数据[0];
const Amount=parseFloat(数据[1]);
控制台日志(地址ID、金额);
}, 5 * 1000);
}
}
总共有4个地址和4个金额。我需要它做(地址,数量)停止10秒,再做一次,直到它到达最后一个。我所做的等待了5秒钟,然后一次就吐出了所有4个地址和金额。- 使用
代替setTimeout
setInterval
- 在数组上循环,并根据索引设置适当的间隔以等待回调的执行(即延迟
而不是i*10000
,其中5*1000
是数组中的当前索引)i
- 使用普通for循环,因为当执行回调时,循环将完成,索引变量将不包含正确的值
let randomArray=[[1,10]、[2,20]、[3,30]、[4,40];
randomArray.map((el,i)=>{
设置超时(()=>{
const AddressID=el[0];
const Amount=parseFloat(el[1]);
控制台日志(地址ID、金额);
},i*10000);
});
关键是使用正常的for
循环,而不是for
循环,这样可以获得数组的索引:
const randomArray = [];
for (var i = 0; i < rows.length; ++i) {
let row = rows[i];
randomArray.push(row);
}
for (var j = 0; j < randomArray.length; j++) {
var data = [randomArray[j]];
setTimeOut(() => { console.log("Delay")}, j * 5000);
const AddressID = data[0];
const Amount = parseFloat(data[1]);
console.log(AddressID, Amount);
}
const randomArray=[];
对于(变量i=0;i{console.log(“Delay”)},j*5000);
const AddressID=数据[0];
const Amount=parseFloat(数据[1]);
控制台日志(地址ID、金额);
}
这应该每五秒钟发射一次,只要把5000换成你喜欢的 可能重复的Hey man感谢您的回复我输入了错误的代码snippit我现在更改了它。我想告诉你,我不能让行,因为有些表文档有100+地址和金额。这只是一个测试。