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

AsyncGenerator - JavaScript | MDN

MDN Web Docs

View in English Always switch to English

AsyncGenerator

Baseline

20201

AsyncGenerator

Promise

AsyncGenerator AsyncIterator

async function* foo() {
  yield await Promise.resolve("a");
  yield await Promise.resolve("b");
  yield await Promise.resolve("c");
}

let str = "";

async function generate() {
  for await (const val of foo()) {
    str = str + val;
  }
  console.log(str);
}

generate();
// : "abc"

AsyncGenerator AsyncGenerator

js
async function* createAsyncGenerator() {
  yield await Promise.resolve(1);
  yield await Promise.resolve(2);
  yield await Promise.resolve(3);
}
const asyncGen = createAsyncGenerator();
asyncGen.next().then((res) => console.log(res.value)); // 1
asyncGen.next().then((res) => console.log(res.value)); // 2
asyncGen.next().then((res) => console.log(res.value)); // 3

AsyncGeneratorJavaScript AsyncGenerator.prototype AsyncGeneratorFunction.prototype.prototype AsyncGeneratorFunction JavaScript

AsyncGenerator.prototype AsyncGenerator

AsyncGenerator.prototype.constructor

AsyncGenerator AsyncGeneratorFunction.prototype

: AsyncGenerator

AsyncGenerator.prototype[Symbol.toStringTag]

@@toStringTag "AsyncGenerator" Object.prototype.toString()

AsyncIterator

AsyncGenerator.prototype.next()

Promise yield

AsyncGenerator.prototype.return()

return try...finally

AsyncGenerator.prototype.throw()

throw

16 for await...of

js
// 
// 
function delayedValue(time, value) {
  return new Promise((resolve /*, reject*/) => {
    setTimeout(() => resolve(value), time);
  });
}

async function* generate() {
  yield delayedValue(2000, 1);
  yield delayedValue(100, 2);
  yield delayedValue(500, 3);
  yield delayedValue(250, 4);
  yield delayedValue(125, 5);
  yield delayedValue(50, 6);
  console.log("All done!");
}

async function main() {
  for await (const value of generate()) {
    console.log("value", value);
  }
}

main().catch((e) => console.error(e));

ECMAScript 2027 LanguageSpecification
# sec-asyncgenerator-objects


Web Proxy Viewer  |  New URL  |  Original Page