1160
Grupo general de programadores. Si te gusta el juego Cartas contra la Humanidad prueba @cclhbot. Para cualquier duda preguntad a @themarioga
tantas funciones y cosas innesesarias y no eliminadas que puse que el codigo simplemente murio
Читать полностью…
function wait (code, s = [])
{
const old = stack
stack = s
while (code.length)
{
code.shift()()
if (stack[stack.length - 1] instanceof Promise)
{
stack.pop().then(x => { s.push(x); wait(code, s) })
stack = old
return
}
}
stack = old
}
tengo que aprender sobre esto y ver cual es la mejor manera o multiples maneras de proveer async await en el lang
Читать полностью…
no puedo proveer await directamente en el lenguaje porque es sintax sugar de js, pero basicamente asi es como lo proveo, otra manera seria promise + callback
Читать полностью…
eso tengo que ver, porque la stack es donde van los valores
Читать полностью…
No mejoras el rendimiento respecto a tener código secuencial con await en cada Promise
Читать полностью…
y tengo que hacer un wrapper para ejecutar ese code con su propia stack
Читать полностью…
mola, no se como evolucionara eso, pero de momento me sirve
Читать полностью…
en el lenguaje la palabra 'wait' lee un block de code hasta 'end' y le da el code a esa wait function
wait 'https://www.example.net load-text log end
@aarroyoc mira mi sucio auto await xd
function wait (code)Читать полностью…
{
while (code.length)
{
code.shift()()
if (stack[stack.length - 1] instanceof Promise)
{
stack.pop().then(x => { put(x); wait(code) })
return
}
}
}
cada vez que llamas a una funcion el entorno creado es nuevo e independiente de las otras llamadas, y el entorno creado hereda del entorno que habia en el momento cuando la funcion se creo
Читать полностью…
closures son solo state bubbles, por eso son utiles
Читать полностью…
lo mejor que puedes hacer es probar el make_counter example por ti mismo quizas xd
Читать полностью…
puedo capturar valores e insertarlos antes de ejecutar el code, etc
Читать полностью…
o hacer todo el interprete async aware, que me gustaria evitar
Читать полностью…
pero codigo asincrono deberia ejecutarse en su propia stack
Читать полностью…
Aparte cómo pasas argumentos entre funciones síncronas y asíncronas?
Читать полностью…
el problema es que el code despues de end no respeta si wait espera o no,
wait 'https://www.example.net load-text log end 1 2 3
en el momento que load-text mete una promise, wait returns asi que el interprete ejecuta 1 2 3 antes que wait acabe de ejecutar el code
load-text devuelve una promise en la stack, asi que wait espera a que se resuelva
Читать полностью…
le das una lista de funciones, si una de ellas al ejecutarse mete una promise en la stack, espera a que resuelva para ejecutar el resto
Читать полностью…
solo entender que cada vez que una funcion se ejecuta crea un nuevo entorno y nuevas variables en ese entorno, cuando una funcion se crea dentro de otra, al crearse retiene el entorno que la otra ha creado al ejecutarse
Читать полностью…
y ver como puedes crear multiples counter cada uno con su propio contador
Читать полностью…
no creo que esa explicacion sea suficiente por eso
Читать полностью…