Javascript 尝试创建本地存储不工作(NextJS)

Javascript 尝试创建本地存储不工作(NextJS),javascript,next.js,Javascript,Next.js,我需要将库存数据拉到我的NextJS应用程序中,然后我尝试将该数据存储到localStorage,但从未设置过。我做错了什么 if (process.browser && localStorage.getItem('inv') === undefined) { const inv = await getInventory() localStorage.setItem('inv', inv) } getInventory()只是一个节点脚本,它从远程api提取

我需要将库存数据拉到我的NextJS应用程序中,然后我尝试将该数据存储到localStorage,但从未设置过。我做错了什么

if (process.browser && localStorage.getItem('inv') === undefined) {
    const inv = await getInventory()
    localStorage.setItem('inv', inv)
  }
getInventory()只是一个节点脚本,它从远程api提取清单数据并返回fullInventory

以下是getInventory()中的代码:

const getInventory=async()=>{
常量令牌=等待刷新令牌()
常数头={
授权:`Bearer${token}`,
};
const querys=等待getQueriesCount();
axios.interceptors.response.use(函数(响应){
返回响应;
},异步函数(错误){
等待新的承诺(功能(res){
setTimeout(函数(){res()},2000);
});
const originalRequest=error.config;
if(error.response.status==401&&!originalRequest.\u重试){
原始请求。_retry=true;
const refreshedHeader=等待setHeader()
axios.defaults.headers=refreshedHeader
originalRequest.headers=refreshedHeader
返回承诺。解决(axios(原始请求));
}
返回承诺。拒绝(错误);
});
让fullInventory=[];
for(设i=0;i{
试一试{
const res=等待axios({
url:`${MyApi}/Item.json&offset=${i*100}&customSku=!~,`,
方法:“获取”,
标题:标题,
});
log(`addingitems${i*100}到${(i+1)*100}`);
const items=wait res.data.Item;
项目[0]
?(完整库存=完整库存。浓缩(项目))
:完整库存。推送(项目);
if(i+1==查询){
退回全部存货;
}
}捕获(错误){
console.error(“我们这里有一个问题:”,error.response);
}
},2000*i);
};
}

尝试此localStorage.setItem('inv',JSON.stringify(inv))
localStorage.getItem('inv')==未定义的
不正确。。。可能
localStorage.getItem('inv')==null
是(因为
.getItem
返回
null
而不是
未定义的
,如果属性不存在)-。。。您可以测试
localStorage.inv===未定义
虽然我忘了它必须是字符串:),但仍然不工作:(.可能是我的getInventory脚本。仍然
localStorage.getItem('inv')==未定义
如果我设置localStorage.getItem('inv')==null,getInventory()没有触发。而且,本地存储中没有任何内容?
const getInventory = async () => {
  const token = await refreshToken()
  const header = {
    Authorization: `Bearer ${token}`,
  };

  const queries = await getQueriesCount();

  axios.interceptors.response.use(function (response) {
    return response;
  }, async function (error) {
    await new Promise(function (res) {
      setTimeout(function () { res() }, 2000);
    });

    const originalRequest = error.config;

    if (error.response.status === 401 && !originalRequest._retry) {
      originalRequest._retry = true;
      const refreshedHeader = await setHeader()
      axios.defaults.headers = refreshedHeader
      originalRequest.headers = refreshedHeader
      return Promise.resolve(axios(originalRequest));
    }
    return Promise.reject(error);
  });

  let fullInventory = [];

  for (let i = 0; i < queries; i++) {
    setTimeout(async () => {
      try {
        const res = await axios({
          url: `${MyApi}/Item.json&offset=${i * 100}&customSku=!~,`,
          method: "get",
          headers: header,
        });

        console.log(`adding items ${i * 100} through ${(i + 1) * 100}`);
        const items = await res.data.Item;
        items[0]
          ? (fullInventory = fullInventory.concat(items))
          : fullInventory.push(items);

        if (i + 1 === queries) {
          return fullInventory;
        }
      } catch (error) {
        console.error("We have a problem here: ", error.response);
      }
    }, 2000 * i);
  };
}