Задержка внутри цикла в JS
Имеется цикл, в теле которого каким-то образом изменяется массив. И функция, которая отрисовывает этот массив на canvas.
Нужно чтобы в конце каждого шага цикла функция, отрисовывающая массив, вызывалась с задержкой. Пытался сделать примерно так:
var myArray
for (var i = 0; i < length; ++i) {
// как-то изменяем myArray...
// и отрисовываем на канве с задержкой
setTimeout(drawOnCanvas(myArray), 2000)
}
Но дело в том, что когда вызывается setTimeout на первом шаге и ждет 2 с. цикл успевает полностью выполниться и drawOnCanvas рисует не массив после первой итерации, а массив, который получен после выполнения всего цикла. Что можно сделать в данной ситуации?