[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Generator/return [Back]  [Original]

Generator.prototype.return() - JavaScript | MDN

MDN Web Docs

View in English Always switch to English

Generator.prototype.return()

Baseline

20169

return() Generator return try...finally

js
generatorInstance.return()
generatorInstance.return(value)

value

2 Object

done

value

yield try...finallyfinally yield/return

TypeError

return() return value; value return() return(value) { done: true, value: value } yield try...finally finally finally yield done false

return()

return

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

const 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

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

const 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 }

return() try...finally

return yield try...finally

return try finally try...finally finally

js
function* gen() {
  yield 1;
  try {
    yield 2;
    yield 3;
  } finally {
    yield "cleanup";
  }
}

const g1 = gen();
g1.next(); // { value: 1, done: false }

//  try...finally 
g1.return("early return"); // { value: 'early return', done: true }

const g2 = gen();
g2.next(); // { value: 1, done: false }
g2.next(); // { value: 2, done: false }

//  try...finally 
g2.return("early return"); // { value: 'cleanup', done: false }

// 
g2.next(); // { value: 'early return', done: true }

// 
g2.return("not so early return"); // { value: 'not so early return', done: true }

finally return value

js
function* gen() {
  try {
    yield 1;
  } finally {
    return "cleanup";
  }
}

const generator = gen();
generator.next(); // { value: 1, done: false }
generator.return("early return"); // { value: 'cleanup', done: true }

ECMAScript 2027 LanguageSpecification
# sec-generator.prototype.return


Web Proxy Viewer  |  New URL  |  Original Page