我正在尝试将本机存储值(我提取的)存储到变量中,以便在POST的数据中使用它,但是我的代码实际上什么也不返回...
在这里,我获取我的值并将其存储到先前定义的变量中,但这不起作用。
bookChef(chef) {
var customer = "";
this.nativeStorage.getItem('userCredentials')
.then(
data => {
console.log(data);
customer = data.id;
});
console.log(customer);
}
我的console.log(customer)
没有返回预期的整数。
有人知道如何处理吗?
答案 0 :(得分:0)
在您的代码中,您正在获取凭据,然后立即尝试使用它们。您可以在nativeStorage甚至没有机会获得该值之前调用console.log。
您需要将使用凭据的代码移到then回调中。
this.nativeStorage.getItem('userCredentials')
.then(data => {
console.log(data);
var customer = data.id;
console.log(customer);
});
答案 1 :(得分:0)
但是我以后需要在
.then()
函数中使用我的客户变量
保存.then
方法返回的承诺:
this.customerPromise = this.nativeStorage.getItem('userCredentials')
.then(data => {
console.log(data);
var customer = data.id;
console.log(customer);
return customer;
},error => {
console.log(error);
throw error;
});
然后将承诺用于chain其他操作:
//LATER
this.customerPromise.then( customer => {
console.log(customer);
// DO other stuff
});
由于调用promise的.then
方法会返回新的派生promise,因此很容易创建promise的promise。可以创建任何长度的链,并且由于一个承诺可以用另一个承诺来解决(这将进一步推迟其解决方案),因此可以在链中的任何点暂停/推迟对承诺的解决。这样就可以实现功能强大的API。
有关更多信息,请参见