Considere que tengo el siguiente código:
function a() { console.log("A"); } function b() { console.log("B"); } function* test(code) { eval(code); yield abc; } var code = "var abc = 2; a(); yield 1; b();" var testObj = test(code); var first = testObj.next(); // expect 1 var second = testObj.next(); // expect 2Da el siguiente error:
Error de sintaxis no detectado: número inesperado
No es posible envolver el código en otra función de generación ya que la variable "abc" desaparecerá. ¿Hay alguna solución a eso?
Actualización el 8 de agosto: el alcance de la variable debe conservarse, porque habrá varios códigos para ejecutar (cada uno probablemente desencadenado por eventos).
function* test() { while (true) { eval(code); } yield abc; } var testObj = test(); // First Call var code = "var a = 2;" testObj.next(); // Second Call code = "a += 1;" testObj.next(); // Third Call code = "console.log(a);" testObj.next(); //Expect Output "3"