У меня есть асинхронная функция, и с ней у меня есть цикл:
let z;
let step = 100;
for(z=0; z < (combinedData.length-1)/step; z += 1){
// FURTHER CODE
}
Внутри цикла есть код:
let z;
let step = 100;
for(z=0; z < (combinedData.length-1)/step; z += 1){
await new Promise((rs,rj)=>{
setTimeout(()=>{
for(let x = 0; x < step; x++){
let a = combinedData; // Array of 2522 elements
let i = z*step + x;
if(!(i < a.length))
return;
// LONG CODE TO EXECUTE NOT PASTING BECAUSE IRRELEVANT I THINK
}
rs();
});
});
console.log(`Showed ${z}`);
}
console.log('end');
И когда я запускаю его, результат:
Showed 1
Showed 2
...
Showed 24
Все правильно, за исключением того, что не отображается «конец».Я проверил, и в разделе
//LONG CODE TO EXECUTE NOT PASTING BECAUSE IRRELEVANT
нет ошибок, так что не беспокойтесь об этом.
Я думаю, эта ошибка лежит где-то в
if(!(i<a.length))return;
, но я нене знаю где и почему.Это утверждение очень важно, чтобы не получить TypeError
из-за доступа к a[i]