@targetologru

Как это переписать на промисы?

Помогите переписать на промисы, чтобы уйти от вложенности. Читаю, читаю, ни черта не понятно.

function setAnswer($str) {
		$('#status small b').html($str);
	}

	$.ajax({
		url: "/proc/index.php",
		type: "POST",
		dataType: "json",
		data: {"vk_id":"<?=$vk_id?>","user":"<?=$_COOKIE['user']?>","secret":"<?=$_COOKIE['secret']?>"},
		success: function(data) {
			if (data.step == 'info') {
				setAnswer('Получаем посты (0%)');
				function fetchData(posts,count = 0) {
					$.ajax({
						url: "/proc/index.php",
						type: "POST",
						dataType: "json",
						data: {"vk_id":"<?=$vk_id?>","user":"<?=$_COOKIE['user']?>","secret":"<?=$_COOKIE['secret']?>","step":"2"},
						success: function(data) {
							if (typeof data.step !== 'undefined') {
								if (data.step == 'done') {
									setAnswer('Готово');
									/*return window.location.reload();*/
								} else if (data.step == 'run') {
									count = data.count;
									setAnswer('Получаем посты ('+count+'%)');
									setTimeout(fetchData(posts,count),500);
								}
							} else {
								$('#status').html('<span class="h3 text-danger">Возникла ошибка. Попробуйте снова.</span>');
							}
						}
					});
				}
				fetchData(data.posts);
			} else {
				$('#status').html('<span class="h3 text-danger">Возникла ошибка. Попробуйте снова.</span>');
			}
		}
	});
  • Вопрос задан
  • 107 просмотров
Пригласить эксперта
Ответы на вопрос 1
LobsterJoe
@LobsterJoe
Взгляните на эту штуку. В описании есть несколкьо хороших примеров работы с асинхронным кодом.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы