функций генераторов вы видели/делали?
парсер текста
Бесконечную прокрутку страницы, при этом было несколько источников контента
Можешь показать, я сделал парсер документов, но не могу доработать асинхрон
сомневаюсь что мои наработки в текущем виде тебе помогут
Жаль, у меня тупо не получается нормально вернуть результат с рекурсии чтобы банально отобразить окончание парсинга
у тебя рекурсивные промисы?
Пока у меня просто рекурсия, у меня функция парсит все папки на компе и файлы, а я не могу понять когда она закончила работу, потому что при окончании рекурсии не могу правильно вернуть промис
раз всё синхронно, зачем промис?
Генераторы полезны перебирать, которые можно представить в виде бесконечных или конечных коллекций(массивов) Представь что ты делаешь парсер сайта, там надо на каждой странице посмотреть все ссылки, на другие страницы и сохранить текст, коллекция Тогда можно написать так for url of initGeneratorUrls('https://example.com') { saveTextFrom(url) if( сохранили 100 страниц) { break } } Генератор будет смотреть страницу, и искать на ней url других страниц. По мере необходимости подгружая новые страницы и ищя в них другие следующие ссылки. Ты можешь в любой момент перестать обходить генератор в любой момент(в примере после 100 страниц), но при необходимсоти продолжить, т.к. у генератора есть внутренее состояние. Либо дополнительно настраивать генератор, например добавив параметр глубины сканирования initGeneratorUrls('https://example.com', /*глубина*/ 2) Таким образом ты можешь упростить логику разбора и поиска новых урлов для обхода до простой коллекции как будто у тебя изначально был известный массив. Либо можно чтобы генератор возвращал уже не урлы для обхода, а просто страницы
попробуй паттерн Deferred для сцепки промисов
Покажи уж свой код, интересно стало
генератор намного сложнее понять нежели Deferred
Сек, я тебе кину файл, он с коментами
В твоем случае можно завернуть рекурсию в генератор
или вместо промисов сделать массив Deferred а потом Promis.all( этот массив )
https://stackoverflow.com/questions/51551113/flow-how-to-extend-native-js-object-especially-promise идея паттерна и как использовать тут: https://api.jquery.com/category/deferred-object/ сравнение: https://lucybain.com/blog/2016/js-promises-vs-deferred/#:~:text=A%20promise%20is%20a%20placeholder,proxy%20for%20the%20future%20result.
Обсуждают сегодня