gpt4 book ai didi

javascript - 存储 get() 从不返回 ionic 2 中的值

转载 作者:行者123 更新时间:2023-11-29 21:08:05 24 4
gpt4 key购买 nike

学习 ionic 2,尤其是使用 Storage

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

ionic start storagetest blank --v2

关注此the docs :

cordova plugin add cordova-sqlite-storage --save
npm install --save @ionic/storage

然后,我的 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 {}

然后继续 home.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 上运行该应用。

最佳答案

storage.set 是异步的并返回一个 promise。因此调用 get().then() 时可能不会设置值。尝试:

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

thencatch() 方法中没有错误处理程序,这可能就是没有记录任何内容的原因。

关于javascript - 存储 get() 从不返回 ionic 2 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42989910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com