Цель состоит в том, чтобы помещать выбранные данные, как объект, в массив с периодическим интервалом и ждать, пока новый массив выйдет на консоль, как только он будет завершен.
Я новичок в JS, так что успокойся;). Я, вероятно, делаю это более сложным, чем это должно быть. Думаю, это будет так же просто, как setTimeout()
в цикле for.
Я смог сгенерировать массив двумя различными способами, используя IIFE с setTimeout()
и setInterval()
ниже. Не уверен, как заставить функцию асинхронного ожидания работать с длиной запроса метода push()
. Может быть, это не очень хороший подход?
class Sample {
constructor(tag, timeStamp) {
this.tag = tag;
this.timeStamp = Date.now();
}
}
function arrayGenerator(tag){
return sampleArr.push(new Sample(tag));
};
function setIntSample(callback, delay, iterations) {
var i = 0;
var intervalID = setInterval(function () {
callback(i);
if (++i === iterations) {
clearInterval(intervalID);
}
}, delay);
};
Выше, кажется, работает console.log()
-ing массив, как он генерируется в функции arrayGenerator()
. Ниже нет игральных костей
function resolveAfterArrGeneration(){
return new Promise(resolve => {
arrLength = setIntSample(i => {arrayGenerator(i)}, 3000, 5)
if (arrLength === 5) {resolve();}
});
}
async function ans() {
var answer = await resolveAfterArrGeneration();
console.log(sampleArr);
}
ans();