首页 > 解决方案 > 在 try...catch 语句中获取未定义的变量

问题描述

我正在使用 Vuex,这是我store.js文件中的代码。
我已经在节点的浏览器e中测试了代码,它可以工作。

为什么我要进入undefined声明try...catch

// the user object is 
{ name: 'Foo', email: 'foo@bar.com' }
actions: {
    login: async ({commit}, user) => {
      console.log('user: ', user) // [OK] print { name: 'Foo', email: 'foo@bar.com' }
      try {
        console.log('user: ', user) // [FAIL] print undefined
      } catch(err) {
        console.error(err)
      }
    },
}

标签: javascriptvue.jsvuex

解决方案


我尝试了一种类似的操作,称为....登录(原文如此)。我从 try 块外部和内部的调用中都得到了正确的值。所以我现在的审问是:你如何构建你的应用程序?使用捆绑器,有或没有 babel 或其他?

我倾向于使用干净的设置进行开发,因此不使用 babel,并以 esm 格式与 rollup 捆绑。也许转译的代码是问题所在(例如,我知道为异步方法创建的生成器会产生截然不同的代码)。


推荐阅读