Объект ошибки в блоке Vue async catch не определен в отладчике

#node.js #vue.js #visual-studio-code

#node.js #vue.js #visual-studio-code

Вопрос:

У меня есть этот компонент Vue, который работает нормально, но отладка является проблемой в VSCode:

 <template>
 <div>   
     <button @click="test">Test</button>
 </div>
</template>

<script>

  async function Test() {

    try {
        throw('zzzzz');
    } catch (e) {
        let x = e;
        console.log(e); //This logs fine
        console.log(x); //This logs fine
        let z = 'break here';
        /********************
        Break on the line above and inspect 'e' in the debug console,
        it is 'undefined'    
        *********************/
    }
  }

  export default {

    data(){
      return {
      }
    },

    methods: {
      test: async function () {
        await Test();
      }
    }

  }
    </script>
 

Согласно комментариям в коде, как e, так и x, похоже, установлены правильно, за исключением того, что я не могу проверить e (в консоли отладки vscode chrome dev tools), что, очевидно, усложняет отладку, поскольку у меня обычно нет консоли.инструкции журнала.

Кроме того, отладка работает нормально. Интересно, что если сделать функцию неасинхронной, как показано ниже, то ‘e’ можно проверить, как и ожидалось.

   function Test(user)
 

Возможно, я пропустил какую-то конфигурацию, чтобы вызвать это?

Комментарии:

1. Когда я запускаю ваш пример и регистрирую e, тогда это «zzzzz», как вы и ожидали?

2. Вы делаете что-то неправильно или, возможно, проблема с Vscode, я получил ожидаемый результат для e и x в инструменте отладки Chrome

3. вы используете let x , если вы вызываете x извне catch x , то undefined

4. Это вспомогательный модуль в среде Vue, я не думал, что это будет иметь какое-либо значение на этом уровне, но это должно как-то повлиять на него. Я попробую еще несколько тестов

5. Я обновил этот вопрос, чтобы более точно проиллюстрировать проблему