Ionic 3存储无法读取forEach内部

时间:2018-11-05 19:28:39

标签: angular ionic-framework

我无法使用forEach内部的存储空间。

但是在forEach之外,存储可以完美运行。

我的代码如下:

tmp.ts

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { Storage } from '@ionic/storage';
import { Http } from '@angular/http';

@IonicPage()
@Component({
  selector: 'page-tmp',
  templateUrl: 'tmp.html',
})
export class TmpPage {

  url: string = "http://www.myurl.com:8282/ionic/php/";

  constructor(
    public navCtrl: NavController, 
    public navParams: NavParams, 
    public storage: Storage,
    public http: Http
  ){
    this.http.get(this.url).map(res => res.json())
    .subscribe(res => {
      res.forEach(function(valor) {
        console.log('login_sucesso:'+valor.login_sucesso);
        this.storage.set('login_sucesso', valor.login_sucesso);
      });
    });
  }
}

我的控制台是:

login_sucesso:OK
ERROR TypeError: Cannot read property 'storage' of undefined
    at tmp.ts:32
    at Array.forEach (<anonymous>)
    at SafeSubscriber._next (tmp.ts:30)
    at SafeSubscriber.__tryOrUnsub (Subscriber.js:242)
    at SafeSubscriber.next (Subscriber.js:189)
    at Subscriber._next (Subscriber.js:129)
    at Subscriber.next (Subscriber.js:93)
    at MapSubscriber._next (map.js:85)
    at MapSubscriber.Subscriber.next (Subscriber.js:93)
    at XMLHttpRequest.onLoad (http.js:1591)

控制台的打印屏幕 console.log

我需要做的就是获取PHP信息并传递给存储。

有人可以帮我吗?

*已解决* https://stackoverflow.com/a/53161108/10609587

res.forEach((valor) => {
    console.log('login_sucesso:'+valor.login_sucesso);
    this.storage.set('login_sucesso', valor.login_sucesso);
  });

1 个答案:

答案 0 :(得分:0)

您可以尝试进行以下调整,以使用“胖箭头”功能吗?似乎您可能正在失去this上下文。

  res.forEach((valor) => {
    console.log('login_sucesso:'+valor.login_sucesso);
    this.storage.set('login_sucesso', valor.login_sucesso);
  });