Я борюсь с чем-то, и я хотел бы спросить вас, можете ли вы указать мне в правильном направлении.Выполнение операций один за другим
У меня есть четыре задачи, которые я хочу выполнить, - один за другим.
- Fetch HTML-код с веб
- Разбираем этот код и сохранить ядро хранения данных
- Используйте эти данные и пакетное Сохранить в календаре
- Загрузить проанализированные данные на мой собственный веб-сервер.
Я написал весь код для этого, и он выполняется отлично. Тем не менее, порой он борется, поскольку некоторые из кода выполняются до того, как другой закончен.
Пример:
func startProcess() {
fetchHTMLFromWeb()
parseHTML()
saveToCalendar()
//Sometimes uploadToWeb() starts before saveToCalendar() is finished
uploadToWeb()
}
Я пытался читать на НОД, но это довольно сложный вопрос, и я нахожу, что это трудно понять это.
Вы можете порекомендовать любые хорошие чтения по этому предмету?
спасибо!
В чем проблема? Когда вы закончите, чтобы получить html-код Просто вызовите синтаксический анализатор с выбранными данными. Это не сработало? – LastMove
Это то, чего я хочу достичь, но как я могу это сделать, чтобы следующий код был выполнен только тогда, когда предыдущий закончен? Я думаю, что функции обратного вызова - это путь, но для меня это неизвестная территория. – fisher
Почему бы не вызвать parseHTML() в функции fetchHTMLFromWeb()? И вызвать startProcess в фоновом потоке? – LastMove