Estoy tratando de entender por qué recibo un error de desbordamiento de pila siguiendo este código:
const promise = new Promise((res,rej) => { res(4); }) while(true){ promise.then((v) => v) }estoy esperando conseguir
4 4 4 4 . . .pero consigue:
FATAL ERROR: MarkCompactCollector: semi-space copy, fallback in old gen Allocation failed - JavaScript heap out of memoryIntente usar un bucle dentro de una función asíncrona como esta como se sugiere a continuación
async function someFunction(){ while(true) { console.log(await promise); } } someFunction();Voy a ilustrar cómo puede crear una serie infinita de promesas que no tengan este problema, pero advierta: su pestaña se atascará:
const pr = new Promise((res,rej) => { res(4); }); (async () => { let promiseList = []; while(true){ const p = pr.then((v) => console.log(v)); promiseList.push(p); if (promiseList.length >= 20) { await Promise.all(promiseList); promiseList = []; } } })();Revisa tu consola y verás los 4s.