eslint await Ожидал присвоения или вызова функции и вместо этого увидел выражение

Когда я помещаю этот код для обещания, что результат не нужен для продолжения:

await resultNotNeeded(bla, foo);

Я получаю эту ошибку eslint:

[eslint] Ожидал присвоения или вызова функции, а вместо этого увидел выражение. (нет неиспользованных выражений)

Если код такой:

const dummy = await resultNotNeeded(bla, foo);

Тогда ошибка eslint:

[eslint] 'пустышка' определена, но никогда не используется (no-unused-vars)

Кто-нибудь знает, как это исправить (я знаю, что могу сделать // eslint-disable-line no-unused-expressions, но я ищу лучший синтаксис для этого оператора.


person David    schedule 02.10.2016    source источник
comment
Что делать, если асинхронный код не работает?   -  person thefourtheye    schedule 02.10.2016
comment
Что ж, если вам не нужен результат, тогда это неиспользуемое выражение. Просто отключите правило.   -  person Bergi    schedule 02.10.2016
comment
По общему признанию, это ошибка правила. Если они хотят разрешить вызовы функций для побочных эффектов, они также должны разрешить await выражения. Сообщите об этом в системе отслеживания проблем eslints.   -  person Bergi    schedule 02.10.2016
comment
@thefourtheye, в этом случае, который, как мне кажется, здесь не проблема, await окружен блоком try {} catch {}, который я здесь не писал, чтобы упростить и сфокусировать вопрос на проблеме. @bergi, спасибо, проблема в том, что eslint не обновлялся   -  person David    schedule 02.10.2016
comment
async/await не является частью ES7.   -  person Felix Kling    schedule 03.10.2016
comment
@FelixKling Я немного запутался и попытался поискать в Интернете, но вокруг много шума. Означает ли это, что я не могу использовать его в узле с babel? Какие последствия? Всегда ли будет нужен полифилл?   -  person David    schedule 03.10.2016
comment
Означает ли это, что я не могу использовать его в узле с babel? Нет, Babel позволяет использовать (будущие) функции, которые еще не поддерживаются изначально. Это именно то, что Babel позволяет вам делать. Каковы последствия? Просто это еще не является частью языка официально. Всегда ли будет нужен полифилл? Когда функция официально станет частью языка, движки будут поддерживать ее изначально (соннер или более поздняя версия). ES7 (ES2016) был выпущен примерно в июне этого года. async/await - это предложение, которое планируется выпустить в следующем году: github.com/tc39 /proposals/blob/master/finished-proposals.md   -  person Felix Kling    schedule 03.10.2016


Ответы (1)


Эта проблема исправлена ​​в [email protected].

Проблема в том, что в моей системе не обновлялся eslint, у меня было [email protected]. Также npm не обновлялся, поэтому npm i eslint@latest -g не обновлял eslint.

Мне пришлось установить [email protected] (сначала я обновился до [email protected], но он не работал, поэтому мне пришлось загрузить исходный код с npm github и sudo make install), а затем я смог обновить [email protected].

Надеюсь, это поможет!

person David    schedule 02.10.2016