Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Storage get()在ionic 2中从不返回值_Javascript_Ionic Framework_Ionic2 - Fatal编程技术网

Javascript Storage get()在ionic 2中从不返回值

Javascript Storage get()在ionic 2中从不返回值,javascript,ionic-framework,ionic2,Javascript,Ionic Framework,Ionic2,学习离子2,特别是使用存储 所以,我刚刚创建了一个空白应用程序: ionic start storagetest blank --v2 在此之后: 然后,我的app.module.ts如下所示: import { NgModule, ErrorHandler } from '@angular/core'; import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular'; import { MyApp } from

学习离子2,特别是使用
存储

所以,我刚刚创建了一个空白应用程序:

ionic start storagetest blank --v2
在此之后:

然后,我的
app.module.ts
如下所示:

import { NgModule, ErrorHandler } from '@angular/core';
import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';

import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';

import { IonicStorageModule } from '@ionic/storage';

@NgModule({
  declarations: [
    MyApp,
    HomePage
  ],
  imports: [
    IonicModule.forRoot(MyApp),
    IonicStorageModule.forRoot()
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage
  ],
  providers: [
    StatusBar,
    SplashScreen,
    {provide: ErrorHandler, useClass: IonicErrorHandler}
  ]
})
export class AppModule {}
然后转到
主页。ts

import { Component } from '@angular/core';

import { NavController } from 'ionic-angular';

import { Storage } from '@ionic/storage';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {

  constructor(public navCtrl: NavController, storage: Storage) {

     storage.ready().then(() => {
       storage.set('name', 'Max');
       storage.get('name').then((val) => {
         console.log('Your name is', val);
       })
     });

  }

}
javascript日志中没有任何内容。似乎
get()
从未返回该值。但是,
ready()
确实有效,因为我在其中放了一个
console.log()

那怎么了


我正在Chrome Mac OS上运行应用程序。

存储。set
是异步的,并返回一个承诺。因此,在调用
get().then()时,可能无法设置值。尝试:

 storage.ready().then(() => {
       storage.set('name', 'Max').then(()=>
       storage.get('name').then((val) => {
         console.log('Your name is', val);
       });
      );
     });
then
catch()
方法中没有错误处理程序,这可能就是没有记录任何内容的原因

 storage.ready().then(() => {
       storage.set('name', 'Max').then(()=>
       storage.get('name').then((val) => {
         console.log('Your name is', val);
       });
      );
     });