javascript - for - visual studio code node js extensions
¿Soporta JSHint async/await? (4)
¿Soporta jshint async / await todavía?
No, todavía no a principios de 2017.
Parece que todavía no es compatible con async/await
. Las personas que trabajan en jsHint han decidido no admitir async/await
hasta que los estándares estuvieran en una etapa tardía (al parecer fueron quemados previamente al admitir cosas demasiado temprano cuando aún estaban cambiando), aunque ya existen implementaciones (Babel, nodejs, etc ... ).
Si sigues este hilo de asunto abierto de jsHint , sigue siendo un problema abierto a partir de los comentarios recientes de hace 7 y 11 días.
Y si no, ¿hay soluciones?
A partir de julio de 2017, parece haber una bifurcación del código jsHint llamada jshint-esnext que tiene soporte para async / await aquí: https://www.npmjs.com/package/jshint-esnext .
Estoy usando JSHint para el proyecto de JavaScript (con el código de Visual Studio). Y en este proyecto utilizo async / await, que JSHint resalta como errores.
Intenté configurar jshint, pero parece que la versión máxima de "esversion" es 6.
¿Soporta jshint async / await todavía? Si lo hace, ¿cómo encenderlo? Y si no, ¿hay soluciones?
Actualización (julio de 2018) : Async / await llegará con el lanzamiento de JsHint 2.10.0. + info: https://github.com/jshint/jshint/pull/3273
La comunidad en desarrollo de JSHINT considera que:
- JSHINT debería admitir primero toda la sintaxis de ES6 antes de comenzar a implementar las características de ES7.
- Las funciones asíncronas están solo en la etapa 1, por lo que la sintaxis puede cambiar mucho
JSHINT-ESNEXT (PAQUETE)
Sin embargo, hay un paquete JSHINT innecesario , que contiene soporte experimental para await / async , llamado JSHINT-ESNEXT .
El autor, @ marcominetti , usó la rama oficial de JSHint 2.7 Master e introdujo esta característica de ES7, tomada de la rama Seb Vincent esnextsiguiente .
Compruebe el paquete Npm , y la fuente en github
Instalación : $ npm install -g jshint-esnext
En este momento (julio de 2017), este es el único enfoque decente disponible para apoyar a wait / async en JSHINT.
JSHINT IGNORE (DIRECTIVA)
Una práctica alternativa o práctica de mitigación sugerida, es usar las directivas de ignorar JSHINT.
// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be ignored by JSHint.
/* jshint ignore:end */
O:
ignoreThis(); // jshint ignore:line
Personalmente encuentro esta práctica de mitigación, sucia y confusa, cuando nuestro código tiene una gran cantidad de referencias asincrónicas / esperadas. Pero más confusas y sucias son las advertencias y errores de JSHINT;)
El OP le preguntó si había alguna solución alternativa. Es un kludge, pero he reemplazado todos mis ''async'' o ''espere'' con ''async / ** /'' y ''espere / ** /''. Luego, un guión rápido para cambiarlos a ''/ * async * /'' y ''/ * await * /'' me permite consultar con jshint.
No es bonito, pero alimenta al bulldog.
Nota: El uso del paquete JSHINT-ESNEXT bifurcado ( NPM y github ) como se sugiere en la "respuesta aceptada" requiere la inclusión de la opción "experimental" para establecer.
/* experimental: [asyncawait] */
o
/* experimental: [asyncawait, asyncreqawait] */
Vea el código fuente here para más detalles.