Ionic 2 typescript变量总是返回undefined

时间:2017-06-28 05:00:58

标签: javascript typescript ionic2

以下是我的代码,我尝试通过传递变量从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.任何帮助都非常受欢迎

2 个答案:

答案 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

中这样做来实现它