gpt4 book ai didi

javascript - Promises - 从存储中获取参数

转载 作者:行者123 更新时间:2023-11-30 11:44:33 25 4
gpt4 key购买 nike

我是 Promises 的新手,我发现我必须使用 Promises 从本地存储中获取保存的信息。我想在我设置之前调用了发布请求
params.set('az_key', data)。我该如何解决?尝试了 Promise 中的 return 语句,但这会导致错误。

public call(params : URLSearchParams) {

this.storage.getAZKey().then(data=>{
console.log(data);
params.set('az_key', data);
console.log("AZ-Key: " + params.get("az_key"));
})

console.log("Token for XXrequest: " + params.get("az_key")); // gives me null

return this.http
.post("http://localhost:8080/Info", params)
.map(res => res.text())

}
}

最佳答案

你不需要 promise 从本地存储中获取一些东西。

设置一些东西:

localStorage.setItem("username", "John");

得到一些东西:

localStorage.getItem("username");

注意:只能设置和获取字符串。

引用:https://developer.mozilla.org/en-US/docs/Web/API/Storage/LocalStorage

但是对于你的异步问题;你是对的,你的发布请求“可能”在你设置你的参数之前被调用,因为这些是异步函数。

一种方法是将这些异步函数链接起来,例如:

public call(params : URLSearchParams) {
return this.storage.getAZKey().then(data=>{
console.log(data);
params.set('az_key', data);
console.log("AZ-Key: " + params.get("az_key"));
}).then(data=>{
console.log("Token for XXrequest: " + params.get("az_key")); // gives me null

return this.http
.post("http://localhost:8080/Info", params)
.map(res => res.text())

})
}

当你使用这个方法时:

this.servletService.call(params).then((obs)=>{
obs.subscribe(
(data)=>{
console.log(data);
},
(err)=>{console.log(err);})
});

关于javascript - Promises - 从存储中获取参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41449660/

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