Да, это возможно. Вы можете использовать Promise.all для выполнения нескольких запросов одновременно с помощью axios. Вам необходимо собрать массив всех id компонентов и создать массив промисов, в которых каждый промис будет выполнять запрос для получения настроек каждого компонента. Затем вы можете использовать Promise.all для выполнения всех запросов и получения результатов. Когда все запросы завершатся, вы можете распределить настройки по соответствующим компонентам.
Вот пример кода:
```javascript
import axios from 'axios';
// Функция для выполнения запроса на получение настроек для определенного компонента
const getSettings = (id) => {
return axios.get(`/api/settings/${id}`)
.then(response => response.data)
.catch(error => {
console.error(`Error while fetching settings for component ${id}:`, error);
throw error;
});
};
// Функция, которая выполняет запросы для получения настроек всех компонентов
const getAllSettings = (componentIds) => {
// Создаем массив промисов для каждого компонента
const promises = componentIds.map(id => getSettings(id));
// Используем Promise.all для выполнения всех запросов
return Promise.all(promises)
.then(results => {
// Возвращаем массив с результатами запросов
return results;
})
.catch(error => {
console.error('Error while fetching settings for all components:', error);
throw error;
});
};
// Использование getAllSettings для получения настроек всех компонентов
const componentIds = ['N1', 'N2', 'N3']; // Здесь нужно собрать массив всех id компонентов
getAllSettings(componentIds)
.then(results => {
// Здесь вы можете распределить настройки по соответствующим компонентам
console.log('Settings for all components:', results);
})
.catch(error => {
console.error('Error while fetching settings for all components:', error);
});
```
Вы можете добавить этот код в вашу реализацию компонентов <form-builder> и вызывать getAllSettings при монтировании каждого компонента для получения настроек. Затем вы можете распределить настройки по соответствующим компонентам внутри обработчика then.