@andrey_chirkin

Как синхронно дождаться данных с сервера?

Здравствуйте. У меня есть список карточек. При нажатии на эту кнопку Открыть передается ее id, срабатывает переход на другую страницу. 62488c7eb9e9f239648247.png
62488cbb2e31f439696061.png
Далее уходит много get запросов на сервер для получения данных из разных таблиц бд.
useEffect(() => {
		TechStore.getDataOperations(tech_id)
	}, [])

getDataOperations(tech_id) {

		let xhr = new XMLHttpRequest()

xhr.open("GET", `http://localhost:8000/api/adaptation/all`, false)

		try {
			xhr.send()
			const dataAdaptation = JSON.parse(xhr.response)

			this.dataOperations.forEach((operation) => {
				dataAdaptation.forEach((adaptation) => {
					if (adaptation["oper_id"] === operation["oper_id"]) {
						operation["adaptation"].push(adaptation)
					}
				})
			})
		} catch (err) {
			console.log(err)
		}

		xhr.open("GET", `http://localhost:8000/api/tool/all`, false)

		try {
			xhr.send()
			const dataTool = JSON.parse(xhr.response)

			this.dataOperations.forEach((operation) => {
				dataTool.forEach((tool) => {
					if (tool["oper_id"] === operation["oper_id"]) {
						operation["tool"].push(tool)
					}
				})
			})
		} catch (err) {
			console.log(err)
		}

}

Как можно синхронно дождаться данных с сервера? Получается так, что эти данные уже используются, а их еще нет. Возникает ошибка.
  • Вопрос задан
  • 168 просмотров
Пригласить эксперта
Ответы на вопрос 1
@zkrvndm
Софт для автоматизации
Если вам надо обработать все запросы словно это один запрос используйте промисы для оборачивания запросов и метод Promise.all - он разом вернет результаты всех запросов.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
07 мая 2024, в 14:38
8000 руб./за проект
07 мая 2024, в 14:38
15000 руб./за проект
07 мая 2024, в 14:36
70000 руб./за проект