Puedo reproducir un problema al que me enfrento en un proyecto de Node en VS Code con lo siguiente:
for (let i=0; i<50; i++) { let text = [ Math.random()>0.5 ? "abc" : "ABC" ]; console.log(i); console.log(text); console.log("*") }Si paso manualmente, todo funciona bien.
Si dejo que el script se ejecute a toda velocidad, en una iteración aleatoria, las palabras en rojo "Cancelado" se imprimirán después de que el primer console.log imprima su salida. A partir de ese momento, el segundo console.log(text) se omite o genera una cadena en blanco (no puedo decir cuál).
Las otras dos declaraciones de console.log() continúan generando los valores correctos hasta el final del bucle.
El color de "Cancelado" es el mismo que el resultado de mi console.error() .
Aquí se muestra una ejecución de muestra donde ocurre la anomalía después de la séptima iteración:
Repetí la secuencia de comandos muchas veces, y cada vez que la salida "Cancelada" ocurre en una iteración diferente. Si hay un punto de interrupción en cualquier lugar del script, no necesariamente en el bucle, no se produce el mensaje "Cancelado".
A pesar de la salida errónea, los valores de todas las variables parecen ser correctos. En mi código real, guardé los valores finales de text en un archivo y se revisaron correctamente.
¿Qué está pasando? ¿Hay algo de qué preocuparse?
Tengo el mismo problema. Creo que es algún tipo de error VSCode.
Cuando imprimo los data en una devolución de llamada de evento, console.log se comporta como se esperaba. Pero después de un tiempo, el hilo principal existe y la salida de console.log Canceled .
import some modules... vtgeojson(tiles, { tilesOnly: true }) .on('data', function (data) { featurecollection.features.push(data); console.log(data) }) .on('end', function () { console.log(featurecollection); console.log(featurecollection.features.length); }) El problema desaparece cuando configuro el punto de interrupción e imprimo los data línea por línea.
El problema también desaparece cuando ejecuto el script en PowerShell.
Aunque el console.log se canceló, los data se insertaron correctamente en la feature list . Lo más probable es que el comportamiento sea causado por el terminal vscode o la forma en que vscode maneja el comando console.log .
La versión de mi nodo es v12.20.0 y la versión de VSCode es:
Version: 1.51.1 (system setup) Commit: e5a624b788d92b8d34d1392e4c4d9789406efe8f Date: 2020-11-10T23:34:32.027Z Electron: 9.3.3 Chrome: 83.0.4103.122 Node.js: 12.14.1 V8: 8.3.110.13-electron.0 OS: Windows_NT x64 10.0.17763 Veo que alguien más tiene un problema similar.
Extraño comportamiento de salida de node.js console.log () al imprimir matrices