Angular 在第六章中的多重承诺中的承诺?
实际问题:分页未显示在Angular 在第六章中的多重承诺中的承诺?,angular,promise,angular6,primeng,Angular,Promise,Angular6,Primeng,实际问题:分页未显示在p表中 解决方案:我们必须一次存储所有数据,然后显示分页。为此,我正在尝试这种方法 实际上,我正在将ngPrime中的p-Datatable升级为p-table。在p-datatable中,正在加载分页, 但是,当我将Datatable升级到table时,没有显示分页 我看着它。如果我使settimeout页面显示,但是我们不能使用settimeout(因为我不知道no进程和Responsee时间) 所以我尝试过承诺,但仍然无法做出每一个承诺 我的场景是,首先我使用响应生成
p表中
解决方案:我们必须一次存储所有数据,然后显示分页。为此,我正在尝试这种方法
实际上,我正在将ngPrime中的p-Datatable升级为p-table。在p-datatable中,正在加载分页,
但是,当我将Datatable升级到table时,没有显示分页
我看着它。如果我使settimeout页面显示,但是我们不能使用settimeout(因为我不知道no进程和Responsee时间)
所以我尝试过承诺,但仍然无法做出每一个承诺
我的场景是,首先我使用响应生成一个响应,然后生成多个响应并存储数据
进入阵列。最后,我在p-table模板中使用该数组。下面是我的代码
allArr = [];
allTemp = [];
ngOnInit():void{
this.getVal.then((x)=>{
this.allArr = x;
})
}
getVal = new Promise( (resolve,reject)=>{
let resource = "path/name";
this.log.getList(resource).subscribe(
rst=>{
for(var key in rst){
this.getInfo(key.name, key.value);
}
//here I don't know where I have to resolve the promise
//setTimeout(() => {
// resolve(this.serviceTemp);
//},2000);
})
}
getInfo(name, value): void{
this.log.getDetail(name)
.subscribe(
(log: any) => {
this.allTemp.push(log.detail);
});
}
我的模板代码
<p-table [columns]="tableHeader" [style]="{'width':'100%'}" [value]="allArr" selectionMode="single" [(selection)]="selectedService" [paginator]="true" [rows]="10" [rowsPerPageOptions]="[5,10,25]"
[responsive]="true" sortField="serviceName" sortOrder="1" sortMode="multiple">
找到了解决方案。实际上,我想保证所有的,对于内部订阅,而不是第一个调用函数
allArr = [];
allTemp = [];
ngOnInit():void{
getVal();
}
allPromise = [];
getVal(){
let resource = "path/name";
this.log.getList(resource).subscribe(
rst=>{
for(var key in rst){
allPromise.push(this.getInfo(key.name, key.value));
}
Promise.all(this.allPromise).then(()=>{
this.allArr = this.allTemp;
});
})
}
getInfo(name, value): void{
let _this = this;
return new Promise(function(resolve, reject) {
_this.log.getDetail(name)
.subscribe(
(log: any) => {
this.allTemp.push(log.detail);
});
})
}
您可以直接调用resolve(this.serviceTemp);在for循环之后?不,它不工作。我找到了解决办法。