@bogomazov_vadim

Как написать этот код лучше?

Доброго времени суток!

Есть функция, которая принимает в себя некоторые параметры и callback:
foo(params, callback) {
	// Что-то там
}


В callback'е мне нужно выждать некоторое время и вызвать ее еще раз с другими параметрами:

foo(params, function () {
	setTimeout(function () {
		foo(params2, callback);
	}, 1000);
});


И так несколько раз. В итоге получается такой некрасивый код:

foo(params, function () {
	setTimeout(function () {
		foo(params2, function () {
			setTimeout(function () {
				foo(params3, function () {
					setTimeout(function () {
						foo(params4, function () {
							// И т.д.
						});
					}, 1000);
				});
			}, 1000);
		});
	}, 1000);
});


Можно ли переписать это лучше?

Спасибо!
  • Вопрос задан
  • 148 просмотров
Решения вопроса 2
Stalker_RED
@Stalker_RED
Может написать уже очередь задач, и дергать их через setInterval? Или цепочка промисов, если задержки не просто по таймеру.

Еще вариант очереди, с удалением отработанных задач https://jsfiddle.net/qtmqxv5q/1/
Ответ написан
Комментировать
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы