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
Angular 为什么可以';我从一个函数返回一个字符串,该函数从离子存储器中获取一个值?_Angular_Ionic Framework - Fatal编程技术网

Angular 为什么可以';我从一个函数返回一个字符串,该函数从离子存储器中获取一个值?

Angular 为什么可以';我从一个函数返回一个字符串,该函数从离子存储器中获取一个值?,angular,ionic-framework,Angular,Ionic Framework,我正在尝试创建一种从存储中获取价值的方法,我可以在整个应用程序中使用它。我已经创建了一个服务并添加了功能 getValue() { this.storage.get('value').then((val) => { return val; }); } 那就这样说吧 const value = this.myService.getValue(); console.log('value=' + value); 但它不起作用console.log()只返回v

我正在尝试创建一种从存储中获取价值的方法,我可以在整个应用程序中使用它。我已经创建了一个服务并添加了功能

getValue() {
    this.storage.get('value').then((val) => {
        return val;
    });
}
那就这样说吧

const value = this.myService.getValue();

console.log('value=' + value);
但它不起作用
console.log()
只返回
value=[objectpromise]


如何以字符串形式返回值?

您必须了解
存储
get()
方法是异步的,这意味着它返回一个承诺,而不是直接返回值。这就是您需要链接
.then()
方法的原因,对吗

当链接
。然后(…)
时,将函数作为参数传递给它:

this.storage.get('values').then((value) => { ... });
//                              ^                ^
//                              |                |
//                              --------------------> This is a function
此函数是该承诺的处理程序。当您从中返回某些内容时,它只会转换promise输出。但返回的
不会从该函数中冒泡出来

因此,您的
getValue()
函数还必须返回一个承诺:

getValue() {
    return this.storage.get('value').then((val) => {
        return val;
    });
}
无论您在哪里使用它,都必须将其视为一种承诺(chain
.then()
以使其具有价值):


您必须了解
Storage
get()
方法是异步的,这意味着它返回一个承诺,而不是直接返回值。这就是您需要链接
.then()
方法的原因,对吗

当链接
。然后(…)
时,将函数作为参数传递给它:

this.storage.get('values').then((value) => { ... });
//                              ^                ^
//                              |                |
//                              --------------------> This is a function
此函数是该承诺的处理程序。当您从中返回某些内容时,它只会转换promise输出。但返回的
不会从该函数中冒泡出来

因此,您的
getValue()
函数还必须返回一个承诺:

getValue() {
    return this.storage.get('value').then((val) => {
        return val;
    });
}
无论您在哪里使用它,都必须将其视为一种承诺(chain
.then()
以使其具有价值):


如何将
值设置为变量,以便在其他地方使用?执行时:
this.api.getValue().then((value)=>{let myValue=value;})
然后
console.log('myValue='+myValue)
我得到
myValue=undefined
你不能。假设promisse是计时器中的一个函数:它可能会在代码剩余部分之后运行,因此当控制台日志运行时,该变量为空。这就是为什么你需要一直使用期票。做好准备。ionic(和许多框架)上的所有内容都是异步的,都会有这种行为。我如何将
值设置为变量,以便在其他地方使用它?执行时:
this.api.getValue().then((value)=>{let myValue=value;})
然后
console.log('myValue='+myValue)
我得到
myValue=undefined
你不能。假设promisse是计时器中的一个函数:它可能会在代码剩余部分之后运行,因此当控制台日志运行时,该变量为空。这就是为什么你需要一直使用期票。做好准备。ionic(和许多框架)上的所有内容都是异步的,并且会有这种行为。