Я хочу реализовать функцию, которая выполняет запросы ajax (response is json), пока в ответе не будет свойства «next». После этого мне нужно выполнить некоторую функцию обратного вызова. Каков наилучший способ для этого? Мой код ниже не работает из-за неправильной области обратного вызова, и я не могу представить, как правильно его передать.Сфера действия функции обратного вызова
_requestPhotos = function(url, callback) { getYFContent(url, function(data) { // some actions if (!!data.next) { _requestPhotos(data.next, callback); } else { callback(smth); } }); };
Это не просто рекурсивная функция. Проблема заключается в том, что «getYFContent» - это функция запроса ajax, и все действия описаны во втором аргументе, который является функцией обратного вызова (например, в $ .get). –
(продолжение) ... Я хочу заполнить массив «фото» соответствующими значениями. Чтобы получить их, я должен делать запросы последовательно один за другим. И в этом проблема - getYFContent() вызывает рекурсивно и обратный вызов (функция, которая должна выполняться после отправки всех запросов, и у нас есть все фотографии). Область fn - это только первая итерация. –
Ах, хорошо, вы можете добавить еще один аргумент 'getYFContent'? таким образом вы можете продолжать передавать обратный вызов. – Hamish