Мне пришлось использовать документ JSON
в качестве актива, поэтому я поместил его в папку
src/assets
.Мне нужно загрузить этот JSON
документ при запуске приложения, и это должна быть синхронная операция, поскольку содержимое этого JSON
используется для правильной инициализации других компонентов приложения.
Что я сделал, так этоиспользуйте XMLHttpRequest
, так как Angular HttpClient
является полностью асинхронным.
const xmlHttp = new XMLHttpRequest()
xmlHttp.open('GET', this.assetUrl, false) <-- false to produce a synchronous call
xmlHttp.send()
const configuration = xmlHttp.responseText
return JSON.parse(configuration)
Однако консоль браузера выдает предупреждение
[Устаревание] Синхронный запрос XMLHttpRequest в основном потокеустарел из-за его пагубных последствий для конечного пользователя.
Могу ли я по-прежнему использовать этот фрагмент кода или мне следует подумать о чем-то еще?
Поскольку папка ресурсов заполненаприменение, нет вредного эффекта, я полагаю.
Дополнительная информация.Этот вопрос задается после этого .
Например, документ JSON содержит URL
, и его следует использовать таким образом
@Injectable()
export class HttpMyService {
private readonly baseUrl: string
...
public constructor(
configurationService: ConfigurationService,
private readonly httpClient: HttpClient,
private readonly logger: NGXLogger
) {
// Get url from JSON document inside assets
this.baseUrl = configurationService.getConfigurationSync().url
}
...
}