所以我有一些这样的代码
fetch('url')
.then((response) => {
response.json().then((Data) => {
localStorage.setItem('var', Data.value);
}
})
})
const x = localStorage.getItem('var');
由于promise的性质,getItem将在setItem之前发生。我想在诺言之外使用“ var”。有什么办法让我先执行setItem然后再执行getItem,或者还有另一种方法可以让我在promise之外获取var的值
答案 0 :(得分:1)
你可以做
fetch("url").then(response => {
response.json().then(Data => {
localStorage.setItem("var", Data.value);
const x = localStorage.getItem("var");
});
});
或
// this needs to be in an async function
await fetch("url");
const data = await response.json();
localStorage.setItem("var", data.value);
const x = localStorage.getItem("var");
您的代码中也存在语法错误。您的}
太多了
答案 1 :(得分:-1)
fetch(url)
.then(response => {
do_some_code1;
// return promise
}).then(() => {
do_some_code2;
}).then(() => {
do_some_code_some_more
}).catch(()=>{
handle_some_error_here
})
您可以在异步中链接多个then
方法,但也可以始终catch
或适当地处理错误,否则将很难调试。享受