Как зациклить задержку в 1 секунду «внутри консоли Google Chrome» - PullRequest
0 голосов
/ 16 февраля 2019

Я хочу запустить myCustomFunction внутри «Консоли Google Chrome» с задержкой в ​​1 секунду для каждого цикла .

Пробовал setInterval, но безрезультатно, поскольку в консоли Google Chrome не было отмечено задержки выполнения.

const  myCustomFunction = i => console.log('iteration test number', i);
for (let i = 0; i < 11; i++) {
    setInterval(myCustomFunction(i), 1000);
};
  1. Я ожидаю, что консоль Google Chrome будет задерживаться на 1 секунду (или более)для каждой итерации перед запуском myCustomFunction.
  2. Мне нужно, чтобы это работало в консоли Google Chrome , а не в модуле в fileName.js

Ответы [ 4 ]

0 голосов
/ 16 февраля 2019

Я изменил ваш код, чтобы получить ожидаемый результат.

const  myCustomFunction = i => console.log('iteration test number', i);
for (let i = 0; i < 11; i++) {
    setTimeout(myCustomFunction, 1000 * i, i);
}

Давайте обсудим изменения,

  1. Заменим setInterval на setTimeout: setInterval выполняет данную функцию в заданном интервале.Итак, если вы вызвали setInterval(myCustomFunction, 1000), он будет повторяться myCustomFunction через каждые 1 с.Это не то поведение, которое вам нужно, вам нужна только задержка в 1 с, и для этого более уместно setTimeout.
  2. первый аргумент setInterval / setTimeout - это функция, но вывод myCustomFunction(i) было undefined.Таким образом, вместо вызова myCustomFunction просто передайте его.
  3. Изменена задержка с 1000 на i*1000: поскольку содержимое цикла for выполняется без какой-либо задержки.Поэтому измените задержку на myCustomFunction после i seconds.
  4. 3-й параметр setTimeout i: setTimeout передает все параметры после 2-го (задержка) в функцию обратного вызова (в нашем случае * 1035)*).

Для ознакомительного посещения

  1. https://developer.mozilla.org/ro/docs/Web/API/window.setTimeout
  2. https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval
0 голосов
/ 16 февраля 2019

Вам необходимо использовать setInterval для выполнения вашей функции (столько раз, сколько вы установили) и остановить ее с помощью clearInterval .В противном случае ваш setInterval будет работать вечно.

const customFunction = i => console.log('Iteration:', i);
let counter = 0;
const maxIteration = 5;
const delay = 1000;

const intervalId = setInterval(() => {
    if (counter < maxIteration) {
      counter++;
      customFunction(counter);
    } else {
      clearInterval(intervalId);
    }
}, delay);
0 голосов
/ 16 февраля 2019

Просмотрите код ниже и прочитайте комментарий, чтобы понять

const  myCustomFunction = i => console.log('iteration test number', i);
repeat = 10; // how many time to repeat;
var i =0; // value to increase.
function loop(){
myCustomFunction(i); 
i++;
if (i<= repeat) // if the loop is suppose to continue
    setTimeout(loop, 1000); // wait 1s and loop agen
}

loop();
0 голосов
/ 16 февраля 2019

Вы можете сделать следующее, используя setInterval в качестве основной функции вместо цикла.

const  myCustomFunction = i => console.log('iteration test number', i);
let iteration = 0;
const delay = 1000;
const tillCount = 11;

setInterval(() => {
    if (iteration < tillCount) {
      iteration ++;
      myCustomFunction(iteration);
    }
}, delay);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...