使用TypeScript在Angular 7中更改全局变量时遇到问题。
我正在使用通过Restful API从数据库收集JSON数据的服务
服务:
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
MyService运行良好,可以获取所需的数据, 然后我将服务称为组件
组件
export class myService {
constructor(private client : HttpClient) { }
dossierSubject = new Subject();
private dossiers : any[];
getExtract(){
this.client.get<any[]>('http://localhost:9090/dossiers')
.subscribe(
(response) => {
console.log("Data acquisition in progress");
this.dossiers = response;
this.emitDossierSubject();
console.log('Received data ' + response);
},
(error) => {
console.log('Error ! : ' + JSON.stringify(error));
}
);
}
emitDossierSubject(){
this.dossierSubject.next(this.dossiers.slice());
}
请,我想知道为什么仅在订阅函数内部更改全局变量“ listeDossiers”。
我尝试对“ listeDossier”使用一个主题,并在更改订阅中的变量后刷新它,而没有成功。
感谢您的帮助。
答案 0 :(得分:0)
我相信console.log(listeDossiers);
应该是console.log(this.listeDossiers);
console.log
外部的subscribe
将被调用,但不会等待http请求,您尝试不等待而将其作为ngOnInit()
函数的一部分进行打印,但是它是仅在您实际分配的subscribe
内