| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/AsyncGenerator | [Back] [Original] |
Get to know MDN better
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"
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.constructorAsyncGenerator AsyncGeneratorFunction.prototype
:
AsyncGenerator
AsyncGenerator.prototype[Symbol.toStringTag]@@toStringTag "AsyncGenerator" Object.prototype.toString()
AsyncGenerator.prototype.next()AsyncGenerator.prototype.return() return try...finally
AsyncGenerator.prototype.throw() throw
16 for await...of
//
//
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 |