Generator.prototype.throw()方法是JavaScript中的内置方法,用于通过向生成器中抛出错误来恢复生成器的执行。
用法:
gen.throw(exception);
参数:该函数接受上述和以下描述的单个参数:
- exception:此参数保存要引发的异常。
返回值:此方法返回一个包含两个属性的Object:
- done:它具有价值
- 真正-对于迭代序列结束后的迭代器。
- 假-对于能够产生序列中下一个值的迭代器。
- 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
相关用法
- Javascript dataView.getInt16()用法及代码示例
- Javascript RegExp toString()用法及代码示例
- JavaScript Math cosh()用法及代码示例
- JavaScript Date toLocaleTimeString()用法及代码示例
- JavaScript Math random()用法及代码示例
- JavaScript Math round()用法及代码示例
- Javascript toString()用法及代码示例
注:本文由纯净天空筛选整理自SHUBHAMSINGH10大神的英文原创作品 JavaScript | Generator.prototype.throw() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。