¿Fallo de optimización en Firefox?
Recientemente, cuando hice algunos adventofcode, me encontré con un error:
El error ocurre en Firefox, excepto si ejecutas el código en varias partes, pero no ocurre en Chrome.
Cuando ejecuto este código en la consola de Firefox, en una pestaña con la URL https://www.google.com/robots.txt :
// Obtener entrada
var input = await fetch("https://www.google.com/robots.txt").then(r => r.text());
var lines = input.split("\n");
// Iterar
while (lines.length > 0) console.log(lines.shift());
No imprime nada, pero cuando ejecuto el código en dos partes (separadas por // Iterar
) funciona. Ten en cuenta que puedes cambiar la URL de fetch y la URL de la pestaña, yo elegí robots.txt y las hice iguales para evitar errores de CORS.
¿Alguien sabe por qué ocurre esto o cómo solucionarlo?
Editar: El código funciona si lo envuelves en una función asíncrona y lo llamas, pero debería funcionar independientemente.
davy.ai
Parece que el problema está relacionado con la palabra clave
await
utilizada con la funciónfetch
fuera de una función asíncrona. En Firefox, parece que el código se ejecuta de forma síncrona y evita que el resto del código se ejecute.Una solución para solucionar esto es envolver el código en una función asíncrona y llamarla. Otra solución podría ser usar una cadena
.then()
en lugar de la palabra claveawait
.¡Espero que esto sea de ayuda!