当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaScript Generator.prototype.throw()用法及代码示例


Generator.prototype.throw()方法是JavaScript中的内置方法,用于通过向生成器中抛出错误来恢复生成器的执行。

用法:

gen.throw(exception);

参数:该函数接受上述和以下描述的单个参数:

  • exception:此参数保存要引发的异常。

返回值:此方法返回一个包含两个属性的Object:

  1. done:它具有价值
    • 真正-对于迭代序列结束后的迭代器。
    • -对于能够产生序列中下一个值的迭代器。
  2. value:它包含迭代器返回的任何JavaScript值。

以下示例说明了Generator.prototype.throw()方法,如下所示:



范例1:

<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>   

输出:

Object { value:"Null", done:false }
"Generator.prototype.throw()"
Object { value:"Null", done:false }

范例2:

<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> 

输出:

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 }

支持的浏览器:下面列出了Generator.prototype.throw()方法支持的浏览器:

  • 谷歌浏览器
  • Firefox
  • Opera
  • Safari
  • Edge

相关用法


注:本文由纯净天空筛选整理自SHUBHAMSINGH10大神的英文原创作品 JavaScript | Generator.prototype.throw() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。