subscribe 方法 return 完成后是列表吗?
Does the subscribe method return a list after completion?
paraBirims: ParaBirimi[];
Get_All(adres: any): Observable < T[] > {
return this.http.get < T[] > (this.base + "/" + adres);
}
getParaBirims(): ParaBirimi[] {
this.genericParaBirim?.Get_All("ParaBirimis/Generic_Method").subscribe({
next: (data) => {
this.paraBirims = data
},
error: (err) => {},
complete: () => {}
});
}
我希望它在上面的代码 (getParaBirims) 中给我列表 return。我该怎么写?
this.paraBirims = getParaBirims();
您的 getParaBirims() 函数应该 return 一个订阅,并且您应该通过在您的服务 and/or 组件中或通过 async
管道订阅它来使用该订阅。
我建议使用 environment.ts
文件来定义您的 URL 前缀。这样您就可以根据应用的环境 运行 更改它们。
正如dopoto所说,最好在组件中简单地定义Observable并订阅它。我们可以从您的代码中删除大量样板文件并执行以下操作。
public paraBirims$: Observable<ParaBirimi[]>;
constructor(private http:HttpClient){
this.paraBirims$ = this.http
.get<ParaBirimi[]>(`${environment.url}/ParaBirimis/Generic_Method`);
}
然后在你的组件的 TS 文件中:
this.paraBirims$ = this.service.paraBirims$;
最后在您组件的 HTML 模板中:
<ul>
<li *ngFor="let paraBirim of paraBirims$ | async">
<!-- do whatever with paraBirim -->
</li>
<ul>
async
管道将根据组件的生命周期自动处理订阅和取消订阅。
如果你想打电话给this.paraBirims = this.getParaBirims();
你应该让你的方法 return 成为列表,然后将它分配给你在 ngOnInit 钩子中的变量:
//changes in the method
getParaBirims(): ParaBirimi[] {
this.genericParaBirim?.Get_All("ParaBirimis/Generic_Method").subscribe(data => {
return data;
});
}
//here call the method in ngOnInit()
ngOnInit() {
this.paraBirims = this.getParaBirims();
}
或者简单地使方法return无效:
getParaBirims():void
然后在ngOnInit()中调用
ngOnInit() {
this.getParaBirims();
}
paraBirims: ParaBirimi[];
Get_All(adres: any): Observable < T[] > {
return this.http.get < T[] > (this.base + "/" + adres);
}
getParaBirims(): ParaBirimi[] {
this.genericParaBirim?.Get_All("ParaBirimis/Generic_Method").subscribe({
next: (data) => {
this.paraBirims = data
},
error: (err) => {},
complete: () => {}
});
}
我希望它在上面的代码 (getParaBirims) 中给我列表 return。我该怎么写?
this.paraBirims = getParaBirims();
您的 getParaBirims() 函数应该 return 一个订阅,并且您应该通过在您的服务 and/or 组件中或通过 async
管道订阅它来使用该订阅。
我建议使用 environment.ts
文件来定义您的 URL 前缀。这样您就可以根据应用的环境 运行 更改它们。
正如dopoto所说,最好在组件中简单地定义Observable并订阅它。我们可以从您的代码中删除大量样板文件并执行以下操作。
public paraBirims$: Observable<ParaBirimi[]>;
constructor(private http:HttpClient){
this.paraBirims$ = this.http
.get<ParaBirimi[]>(`${environment.url}/ParaBirimis/Generic_Method`);
}
然后在你的组件的 TS 文件中:
this.paraBirims$ = this.service.paraBirims$;
最后在您组件的 HTML 模板中:
<ul>
<li *ngFor="let paraBirim of paraBirims$ | async">
<!-- do whatever with paraBirim -->
</li>
<ul>
async
管道将根据组件的生命周期自动处理订阅和取消订阅。
如果你想打电话给this.paraBirims = this.getParaBirims();
你应该让你的方法 return 成为列表,然后将它分配给你在 ngOnInit 钩子中的变量:
//changes in the method
getParaBirims(): ParaBirimi[] {
this.genericParaBirim?.Get_All("ParaBirimis/Generic_Method").subscribe(data => {
return data;
});
}
//here call the method in ngOnInit()
ngOnInit() {
this.paraBirims = this.getParaBirims();
}
或者简单地使方法return无效:
getParaBirims():void
然后在ngOnInit()中调用
ngOnInit() {
this.getParaBirims();
}