【问题标题】:Ionic 2 typescript variable always return undefinedIonic 2 typescript 变量总是返回 undefined
【发布时间】:2017-12-01 07:34:45
【问题描述】:

以下是我的代码,我尝试通过传递变量从 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 并没有错。任何帮助都非常感谢

【问题讨论】:

  • 您说currentPageval 正在返回一个数字,对吗?那么如果你console.log(val + 1) 你会得到什么?
  • 你需要链接你的承诺。this.storage.get 是异步的
  • @crash - 最初我将它设置为 1。所以如果我这样做 console.log(val + 1) 我得到 2。
  • @suraj - 你能帮我放一些示例代码吗?

标签: javascript typescript ionic2


【解决方案1】:

你正在调用两个异步函数

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);
    });
});
}

做这样的事情。

【讨论】:

    【解决方案2】:
    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 中这样做了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-29
      • 2023-03-20
      • 1970-01-01
      • 2017-03-18
      • 2016-01-16
      • 1970-01-01
      • 2012-09-05
      相关资源
      最近更新 更多