Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.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/7/sqlite/3.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
Angular 以字符串形式获取离子存储项_Angular_Sqlite_Typescript_Ionic3_Ionic Storage - Fatal编程技术网

Angular 以字符串形式获取离子存储项

Angular 以字符串形式获取离子存储项,angular,sqlite,typescript,ionic3,ionic-storage,Angular,Sqlite,Typescript,Ionic3,Ionic Storage,正如标题中所说,我的问题是当我这样做时: this.storage.get('user') 我得到这个物体 t {__zone_symbol__state: null, __zone_symbol__value: Array(0)} 我不知道如何操纵它 我在问是否有办法从我的存储器中获取字符串值 范例 //当我这样存储用户id时 this.storage.set(“user”,JSON.stringify(userID)); console.log(this.storage.get('us

正如标题中所说,我的问题是当我这样做时:

this.storage.get('user')
我得到这个物体

t {__zone_symbol__state: null, __zone_symbol__value: Array(0)}
我不知道如何操纵它

我在问是否有办法从我的存储器中获取字符串值 范例

//当我这样存储用户id时
this.storage.set(“user”,JSON.stringify(userID));

console.log(this.storage.get('user'))//例如,输出100
离子存储返回数据承诺。因此,您必须等待承诺得到解决,并获得如下数据:

this.storage.get('user').then((result) => {
      console.log('My result', result);
});

公认的答案当然有效。由于后续注释询问如何使用存储中的结果字符串,因此另一种方法是使用async/await来处理承诺。这可以清除嵌套的
.then()
的潜在混乱


ionic storage返回了数据的承诺。感谢现在的链接,经过一些修改,我能够从存储中得到我想要的东西。它对我来说就是这样,如果可能的话,我还有一个问题,若我根据结果进行一些治疗,我所要做的就是把它放在这里
this.storage.get('user')。然后((result)=>{//mycode})如果它是这样工作的,那么您可以接受答案。您能详细说明第二个问题吗?您好,谢谢您的帮助,有没有一种特殊的方法可以像在方法或其他东西中一样使用这行代码,因为当我直接这样使用它时,它会给我这个错误
Typescript error找不到名称“wait”。
Typescript error',预期。在await
Typescript之后,在1.7中添加了对
async/await
的支持。
await
需要位于标有
async
的方法内。查看typescript 1.7文档了解更多信息:谢谢,我按照你说的做了,现在可以了。如果你允许的话,我还有第二个问题。当然,有没有办法生成一个全局变量,当我想要使用从存储中获得的值时,我所要做的就是使用该变量?可能,是的。您可以从Angular service/provider创建属性,该属性(在启动时?)通过此异步存储方法填充。缺点是,在异步启动例程填充该属性之前,该属性将为null/空。因为从存储中获取内容是异步的,并且使用承诺,所以您在这方面做不了多少工作—您不能将它强制转换为一个简单的变量。谢谢您,这样提供程序的工作将更多地减少代码行,并使其更易于操作
let result: string = await this.storage.get('user');
//Use result here