Чтобы убедиться, что мы находимся на той же странице, метод итератора .return
обычно ведет себя как принудительный return
в текущем приостановленном месте при вызове.Это означает, что никакой дополнительный код в самой функции фактически не будет работать.Для фрагмента вроде:
var makeIter = function*(){};
var iter = makeIter();
, выполняющего
var result = iter.return(4);
// { value: 4, done: true }
Кто-нибудь может подумать о случае использования, когда необязательному методу возврата итератора es6 необходимо получить значение?
Что еще это вернет?Это может быть жестко задано для возврата undefined
, но не похоже, что есть большая причина не разрешать указывать возвращаемое значение.
... возвращать IteratorResult?
Что он должен вернуть, если не это?Хотя это и не обрабатывается большинством вызывающих итераторов, технически другой yield
может запускаться при вызове .return
, поэтому он, возможно, еще не завершил выполнение итерируемого.