Generator.prototype.return()

Метод return() возвращает полученное значение и останавливает генератор.

Синтаксис

gen.return(value)

Параметры

value
Значение для возврата.

Возвращаемое значение

Значение, которое было передано в виде аргумента.

Примеры

Использование return()

Следующий пример показывает простой генератор и метод return.

function* gen() { 
  yield 1;
  yield 2;
  yield 3;
}

var g = gen();

g.next();        // { value: 1, done: false }
g.return('foo'); // { value: "foo", done: true }
g.next();        // { value: undefined, done: true }

Если return(value) вызывает генератор, который находится в уже "завершённом" состоянии, генератор останется в "завершённом" состоянии. Если аргумент не был передан, свойство value вернёт тот же объект, что и .next(). Если аргумент был передан, он будет установлен как значение свойства value возвращаемого объекта.

function* gen() {
  yield 1;
  yield 2;
  yield 3;
}

var g = gen();
g.next(); // { value: 1, done: false }
g.next(); // { value: 2, done: false }
g.next(); // { value: 3, done: false }
g.next(); // { value: undefined, done: true }
g.return(); // { value: undefined, done: true }
g.return(1); // { value: 1, done: true }

Спецификации

Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'Generator.prototype.return' в этой спецификации.
Стандарт Изначальное определение.
ECMAScript Latest Draft (ECMA-262)
Определение 'Generator.prototype.return' в этой спецификации.
Черновик

Совместимость с браузерами

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung InternetNode.js
returnChrome Полная поддержка 50Edge Полная поддержка 13Firefox Полная поддержка 38IE Нет поддержки НетOpera Полная поддержка 37Safari Полная поддержка 10WebView Android Полная поддержка 50Chrome Android Полная поддержка 50Firefox Android Полная поддержка 38Opera Android Полная поддержка ДаSafari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 6.0.0

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки

Смотрите также