05. Generator .return()
Вызов generator.return(x)
завершает выполнение генератора со значением x
;
return(x)
завершает функцию генератор, выполняяreturn x
на месте текущего приостановленногоyield
.return()
используется для остановки и закрытия генератора.Новые вызовы
generator.next()
больше не имеют смысла. Впрочем, если они и будут, то не вызовут ошибки, но будут возвращать один и тот же объект:{done: true}
.«Открутить назад» завершившийся генератор нельзя.
You can prevent return()
from terminating the generator if you yield inside the finally clause (using a return statement in that clause is also possible):
This time, return()
does not exit the generator function. Accordingly, the property done
of the object it returns is false
. You can invoke next()
one more time. Similarly to non-generator functions, the return value of the generator function is the value that was queued prior to entering the finally clause.
Returning a value from a newborn generator (that hasn’t started yet) is allowed:
Last updated
Was this helpful?