Closed aglezg closed 2 years ago
Hola Adrián, buenas tardes.
Tal y como les comenté en la última clase de teoría, a la hora de introducir el patrón callback, este es uno de los problemas que, precisamente, indiqué.
El ámbito del manejador que le pasas a fs.access
es totalmente diferente al de la variable numberOfWords
. Nunca vas a conseguir obtener el valor fuera de dicho manejador a no ser que escribas el método method1
utilizando el patrón callback. Repasa los apuntes para que caigas en la cuenta de lo que quiero indicarte.
Saludos.
Perfecto, ya está solucionado!! Gracias!
https://github.com/ULL-ESIT-INF-DSI-2122/ull-esit-inf-dsi-21-22-prct10-async-fs-process-alu0101321219/blob/3bcdfcfb8e41eba7e830a80b5134fd2f7d4d1aa9/src/ejercicio-2.ts#L4-L32
Buenas tardes,
Para la realización del ejercicio 2 de la práctica 10 se pide calcular el número de ocurrencias de una palabra dentro de un determinado fichero implementando los comandos
cat
ygrep
y el uso de una expresión regular. Tal y como tengo desarrollado el código este cálculo funciona correctamente. El problema viene a la hora de devolver en la misma función la variable que almacena el número de palabras contadas.Como se puede ver en el código, inicialmente esta variable se setea con un valor de cero.
Y más adelante es sobreescrita en el caso de realizar un match con el texto leído del fichero.
No obstante, este valor siempre se devuelve como
0
. Intuyo que esto sucede dado a que estoy empleando una función asíncrona y por tanto no se espera a que acabe la ejecución del bloquefs.access
para devolver dicha variable.¿Habría alguna forma de hacer que se espera a que termine la ejecución de dicho bloque? ¿Podría plantearlo de otra manera?
@esegredo