Я занимаюсь разработкой приложения в aureliajs.Процесс разработки начинается в течение многих месяцев, и теперь внутренние разработчики хотят сделать свои сервисы версионными.Итак, у меня есть веб-служба для вызова версии каждого серверного приложения (веб-API), а затем, для дальнейших запросов, вызываю правильный адрес API, включая его версию.
Итак, в приложении.js Я запрашиваю системную мету и где-то ее храню.Но некоторые компоненты инициализируются до выполнения этого запроса.Поэтому они не найдут инициализированную версию и запросят неверные данные сервера.
Я хочу заставить конструктор app.js ждать, пока эти данные не будут получены.Например, что-то вроде этого:
export class App {
async constructor(...) {
...
await this.initializeHttp();
...
}
initializeHttp(){
// get the system meta from server
}
}
, но это решение не применимо.Потому что конструктор не может быть асинхронным.Так как мне заблокировать задание до получения системной мета?
ОБНОВЛЕНИЕ
Вопрос не является дубликатом этого вопроса .В этом вопросе во внешнем классе есть место для задания инициализации;хотя в моем вопросе главная проблема в том, где поставить это ожидание.Таким образом, вопрос заключается не только в асинхронной функции в конструкторе, но и в блокировании всех заданий aurelia до разрешения асинхронного задания.