首页 > 解决方案 > 变量在javascript中不会改变

问题描述

我有这样的代码,并且console.log(token)显示undefined

  var token;
  store.get('userTokens').then(res => {
    token = res.idToken.jwtToken;
    console.log(res.idToken.jwtToken);
  });
  switch (type) {
    case 'get':
      console.log(token);
      Axios.get(baseUrl + url, {
        headers: {
          Authorization: `Bearer ${token}`,
          extraHeaders,
        },
      })
        .then(res => {
          console.log(res);
          return res;
        })
        .catch(err => {
          console.log(err);
          return err;
        });
      break;
  }

标签: javascriptreactjsreact-native

解决方案


在解决(或拒绝)switchpromise from 后,您需要将语句移动到某个位置。store.get

  var token;
  store.get('userTokens').then(res => {
    token = res.idToken.jwtToken;
    switch (type) {
      case 'get':
        console.log(token);
        Axios.get(baseUrl + url, {
          headers: {
            Authorization: `Bearer ${token}`,
            extraHeaders,
          },
        })
        .then(res => {
          console.log(res);
          return res;
        })
        .catch(err => {
          console.log(err);
          return err;
        });
      break;
    }
  });

或者您可以使用await等待store.get函数返回res


推荐阅读