Tenemos que llamar a la función asíncrona desde otra función que puede ser asíncrona o síncrona (podemos pasar la array o elegir declarar la array en la propia función asíncrona) y luego devolver la array desde la función asíncrona.
El enfoque básico es incluir un bloque try-catch. Si ocurre algo incorrecto al ejecutar las instrucciones del bloque de prueba, se usa un bloque catch para manejar la excepción.
Ejemplo 1: A continuación se muestra el código en el que llamamos a la función de impresión . Definimos la array en esta función (en este caso asíncrona), la pasamos a otra ordenación de función asíncrona . La función de clasificación luego ordena la array y la devuelve, y luego mostramos la array desde la función de impresión .
index.js
const sort = async (arr) => { try { let i, j, temp; // Using bubble sort to sort the array for (i = 0; i < arr.length; i++) { for (j = i + 1; j < arr.length; j++) { if (arr[i] > arr[j]) { // The await prevents the // execution of next line // until this line is executed temp = await arr[i]; arr[i] = await arr[j]; arr[j] = await temp; } } } // Returns the sorted array return arr; } catch (e) { // Display the error in case // enything wrong happened console.log(e) } } const print = async () => { // Use try-catch block to handle error try { // Define and initialize an array let arr = [17, 90, 13, 10, 76] // Call the "sort" function passing // the array and store the result in // "sortedArray", await will prevent // the execution of next line until // this line is executed. const sortedArray = await sort(arr) // Display sortedArray to check if // everything works fine console.log(sortedArray) } catch (e) { // Display the error in case // anything wrong happened console.log(e) } } // Calling print() is called print();
Ejecute el archivo index.js con el siguiente comando:
node index.js
Producción:
[ 10, 13, 17, 76, 90 ]
Ejemplo 2: ahora veamos el ejemplo de devolver una array desde una función asíncrona que se ha declarado en esa función asíncrona. La función devolverá una array de todos los números primos que son menores que un número dado N.
index.js
const prime = async (N) => { try { const arr = [] // Iterate from 2 to N-1 to check // which numbers are prime for (var i = 2; i < N; i++) { let j = 2 while (j < i) { // Check if the number is // divisble by any number // except 1 and itself if (i % j == 0) { break } j++; } if (j == i) { // If this condition holds // true then it means that // the number is not // divisible by any number // except 1 and itself. // Therefore, it is a prime // number and add this number // to the array. arr.push(j) } } // Return the array return arr } catch (e) { // Display the error in case // anything wrong happened console.log(e) } } const findPrime = async () => { try { let N = 20 // Call prime() passing argument // N which is equal to 20 and // store the result in an array const primeAry = await prime(N) // Print the array console.log(primeAry) } catch (e) { // Display the error in case // anything wrong happened console.log(e) } } // Calling findPrime() method findPrime()
Producción:
[ 2, 3, 5, 7, 11, 13, 17, 19 ]
Publicación traducida automáticamente
Artículo escrito por rupalics18 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA