首页 > 解决方案 > 在对象中的函数之前运行检查函数

问题描述

我有一个 fetcher 对象,在该对象的任何功能运行之前,我想运行一个令牌检查。我想知道是否有办法最初运行检查,然后继续获取、发布、放置..ect。我的 fetch 对象如下所示:

const Fetcher = {
  get: async () => {
    //fetch stuff and return a promise
  },
  post: async () => {
    //fetch stuff and return a promise
  }
  ...ect.
}

我想在获取任何内容之前检查我的令牌是否过期,如下所示:

const checkToken = async () => {
  const exp = Store.getState().auth.tokenExp;

  //check if theres an expiration set
  if (!exp) {
    Store.dispatch({ type: LOGOUT });
    sessionStorage.removeItem('user');
    return false;
  }

  //check if token is not expired
  if (Date.now() < exp * 1000) return true;

  //if token is expired logout and return true
  Store.dispatch({ type: LOGOUT });
  sessionStorage.removeItem('user');
  return false;
};

我开始在这里做很多跳跃,我试图让它更简单。我正在使用 react 和 redux,所以我已经从 component -> redux action -> fetcher object -> token check 开始,我只是想知道在继续 get, post, put 之前是否有任何简单的方法来运行检查。 .ect 函数除了编写另一个包装函数。我可以对这些功能中的每一个进行检查,但我想知道是否有更好的方法。

标签: javascriptreactjsecmascript-6reduxpromise

解决方案


推荐阅读