因此,有一些方法來在for of
循環停止發電機,但如何break
(在for-of
在比較return
)發送一個信號發生器?停止發電機時,Break如何在for-of循環中工作?
請考慮代碼。
作爲一個例子,上述代碼只是增加了從1到10的值,並做暫停和簡歷之間。
function *Generator() {
try {
var nextValue;
while (true) {
if (nextValue === undefined) {
nextValue = 1;
}
else {
nextValue++;
}
yield nextValue;
}
}
// cleanup clause
finally {
console.log("finally has been reached.");
}
}
它通過使用for of
上循環,10次:
var it = Generator();// it gets Generator's iterator
for (var v of it) {
console.log(v);
if (v > 9) {
//it.return("stop");//this is another tool for stopping, but it doesn't stop immediately.
break;
console.log("it won't run");//this line won't run
}
}
當it.return()
使用的方式,實施的明確(it
是主要對象,並已得到了控制,但什麼break
?);
你正在擺脫for循環,你期望與'break'發生什麼? – pinkfloydx33
不應該只寫「返回」;退出循環而不是「它。return(「stop」);「,你也在循環中使用break,它應該跳出循環。 –
不完全確定你在問什麼 - 但Break用來跳出循環(並繼續任何方法在循環之外)返回將跳出一個方法,而不僅僅是一個循環 - 它可以返回一個值,Break不會返回一個值 – Korgrue