Мне нужно было загрузить файл настроек синхронно, и это было моим решением:
export function InitConfig(config: AppConfig) { return () => config.load(); }
import { Injectable } from '@angular/core';
@Injectable()
export class AppConfig {
Settings: ISettings;
constructor() { }
load() {
return new Promise((resolve) => {
this.Settings = this.httpGet('assets/clientsettings.json');
resolve(true);
});
}
httpGet(theUrl): ISettings {
const xmlHttp = new XMLHttpRequest();
xmlHttp.open( 'GET', theUrl, false ); // false for synchronous request
xmlHttp.send( null );
return JSON.parse(xmlHttp.responseText);
}
}
Затем он предоставляется как app_initializer, который загружается до остальной части приложения.
app.module.ts
{
provide: APP_INITIALIZER,
useFactory: InitConfig,
deps: [AppConfig],
multi: true
},
Format-*
командлеты были сделаны для отображения данных пользователю. Не используйте их, когда требуется / предназначена дальнейшая обработка данных.
Измените
... | select samaccountname | Format-Table -HideTableHeaders | Out-String
на
... | select -Expand samaccountname -First 1
, и ваша проблема исчезнет.