El método Generator.prototype.throw() es un método incorporado en JavaScript que se usa para reanudar la ejecución de un generador arrojándole un error.
Sintaxis:
gen.throw(exception);
Parámetros: esta función acepta un solo parámetro como se mencionó anteriormente y se describe a continuación:
- excepción: este parámetro contiene la excepción que se lanzará.
Valor devuelto: este método devuelve un objeto que contiene dos propiedades:
- hecho: Tiene el valor
- verdadero : para el iterador que pasó el final de la secuencia iterada.
- falso : para el iterador que puede producir el siguiente valor en la secuencia.
- valor: contiene cualquier valor de JavaScript que devuelve el iterador.
Los siguientes ejemplos ilustran el método Generator.prototype.throw() y se enumeran a continuación:
Ejemplo 1:
javascript
<script> function* GFG() { while(true) { try { yield "Null"; } catch(e) { console.log('Generator.prototype.throw()'); } } } const geeks = GFG(); console.log(geeks.next()); console.log(geeks.throw(new Error('Error caught!'))); </script>
Producción:
Object { value: "Null", done: false } "Generator.prototype.throw()" Object { value: "Null", done: false }
Ejemplo 2:
javascript
<script> function* GFG(pageSize = 1, list) { let output = []; let index = 0; while (index < list.length) { try { output = []; for (let i = index; i < index + pageSize; i++) { if (list[i]) { output.push(list[i]); } } yield output; index += pageSize; } catch(e) { console.log('Generator.prototype.throw()'); } } } list = [1, 2, 3, 4, 5, 6, 7, 8] var geek = GFG(3, list); console.log(geek.next()); console.log(geek.next()); console.log(geek.next()); console.log(geek.throw(new Error('Error caught!'))); </script>
Producción:
Object { value: Array [1, 2, 3], done: false } Object { value: Array [4, 5, 6], done: false } Object { value: Array [7, 8], done: false } "Generator.prototype.throw()" Object { value: Array [7, 8], done: false }
Navegadores compatibles: los navegadores compatibles con el método Generator.prototype.throw() se enumeran a continuación:
- Google Chrome 39 y superior
- Firefox 26 y superior
- Ópera 26 y superior
- Safari 10 y superior
- Borde 13 y superior
Publicación traducida automáticamente
Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA