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