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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。