以下是我的代码,我尝试通过传递变量从API获取数据。
let currentPage;
let nextPage;
let leadsArray;
this.storage.get('current_page').then((val) => {
currentPage = val;
nextPage = currentPage + 1;
});
return new Promise(resolve => {
this.http.get(this.webServiceUrl+'Inquiries/bwwFhAppTestApi3/'+this.clientId+'/'+nextPage)
.map(res => res.json())
.subscribe(data => {
//console.log(data);
leadsArray = data.leads;
this.storage.set('current_page', nextPage);
resolve(leadsArray);
});
});
当我检查HTTP请求时,变量nextPage
始终呈现为未定义。 currentPage
变量没有任何问题,因为它设置为1.任何帮助都非常受欢迎
答案 0 :(得分:2)
您正在调用两个异步函数
function1(){
let currentPage;
let nextPage;
let _this =this;
this.storage.get('current_page').then((val) => {
currentPage = val;
nextPage = currentPage + 1;
_this.function2(nextPage);
});
}
function2(nextPage){
let leadsArray;
return new Promise(resolve => {
this.http.get(this.webServiceUrl+'Inquiries/bwwFhAppTestApi3/'+this.clientId+'/'+nextPage)
.map(res => res.json())
.subscribe(data => {
//console.log(data);
leadsArray = data.leads;
this.storage.set('current_page', nextPage);
resolve(leadsArray);
});
});
}
做这样的事情。
答案 1 :(得分:0)
doInfinite(infiniteScroll) {
let currentPage;
let nextPage;
this.storage.get('current_page').then((val) => {
currentPage = val;
nextPage = currentPage + 1;
this.webService.getOpenLeadsByPage(nextPage).then((result) => {
for( var lead in result) {
this.leads.push(result[lead]);
}
infiniteScroll.complete();
});
});
}
最终通过在我的home.ts