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


JavaScript Generator throw()用法及代碼示例


JavaScript Generator.prototype.throw() 方法是 JavaScript 中的內置方法,用於通過向生成器拋出錯誤來恢複生成器的執行。

用法:

gen.throw(exception);

參數:該函數接受如上所述和如下所述的單個參數:

  • exception:該參數保存要拋出的異常。

返回值:此方法返回一個包含兩個屬性的對象:

  • done:它有它的值
    • true- 對於超過迭代序列末尾的迭代器。
    • false- 對於能夠產生序列中下一個值的迭代器。
  • value:它包含迭代器返回的任何 JavaScript 值。

下麵的示例說明了 Generator.prototype.throw() 方法,如下所示:

示例 1:此示例展示了在 Javascript 中使用 Generator.prototype.throw() 方法。

javascript


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!')));

輸出:

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

示例 2:此示例展示了在 Javascript 中使用 Generator.prototype.throw() 方法。

javascript


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] 
let geek = GFG(3, list); 
  
console.log(geek.next()); 
console.log(geek.next()); 
console.log(geek.next()); 
console.log(geek.throw(new Error('Error caught!')));

輸出:

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()方法支持的瀏覽器如下:

  • 穀歌瀏覽器 39 及以上版本
  • 火狐瀏覽器 26 及以上版本
  • Opera 26 及以上
  • Safari 10 及以上版本
  • 邊 13 及以上

我們有 Javascript 生成器方法的完整列表,要檢查這些方法,請閱讀 Javascript Generator Reference 文章。



相關用法


注:本文由純淨天空篩選整理自SHUBHAMSINGH10大神的英文原創作品 JavaScript Generator throw() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。