當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。