Разве WebStorm не работает до точек останова на линии ожидания? - PullRequest
0 голосов
/ 22 мая 2019

Сначала я установил точку останова в строке let, в строке if и в строке await.

Предполагая, что я разбиваю строку let и затем нажимаю run до следующей точки останова, код переходит к следующей точке останова.

Однако, если я в строке let, я могу нажать stepи перейдите к строке const test, снова нажмите шаг, и он перепрыгнет через оператор if и перейдет к строке const test2.Нажатие run не приводит к строке ожидания, а нажатие на шаг вперед или назад после достижения test2 приводит к тому, что я перехожу на другой код.

Как бывший пользователь Visual Studio, это действительно странное поведение для меня.Я не знаю, есть ли это особенность TypeScript или что-то связанное с TypeScript / JavaScript и конструкцией async / await.

Я несколько раз перестраивался, чтобы убедиться, что мой код соответствует тому, что выполняется на сервере.

Я думал, что строка ожидания должна быть нажата, затем она должна приостановить остальную часть функции.

public async requestList() {

    let res = this.cache.get(serializedParam);

    const test = 'test';
    if (!res) {
        const test2 = 'test2';
        const _res = await Function(param);
     }

Ответы [ 2 ]

1 голос
/ 23 мая 2019

Проблема выглядит аналогично WEB-39041 , следите за обновлениями. Это происходит только при использовании исходных карт, пошаговое выполнение отлично работает при отладке чистого Javascript

0 голосов
/ 22 мая 2019

Попробуйте это:

Объявите функцию как «асинхронную» для использования await.Функция должна быть асинхронной.

async requestList() {
    let res = this.cache.get(serializedParam);

    const test = 'test';
    if (!res) {
        const test2 = 'test2';
        const _res = await Function(param);
     }
}

async  Function(param){

}
...