async function* ííì
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2020ë 1ì.
async function* í¤ìëë ííì ë´ë¶ìì ë¹ë기 ì ëë ì´í° í¨ì를 ì ìíëë° ì¬ì©ë©ëë¤.
ìëí´ ë³´ê¸°
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();
// Expected output: "abc"
구문
async function* (param0) {
statements
}
async function* (param0, param1) {
statements
}
async function* (param0, param1, /* ⦠,*/ paramN) {
statements
}
async function* name(param0) {
statements
}
async function* name(param0, param1) {
statements
}
async function* name(param0, param1, /* ⦠,*/ paramN) {
statements
}
매ê°ë³ì
nameOptional-
í¨ì ì´ë¦ì ëë¤. ìµëª í¨ìì ê²½ì° ìëµí ì ììµëë¤. ì´ë¦ì í¨ì 본문 ë´ììë§ ì í¨í©ëë¤.
paramNOptional-
í¨ìì ì ë¬ëë ì¸ìì ì´ë¦ì ëë¤. í¨ìë ìµë 255ê°ì ì¸ì를 ê°ì§ ì ììµëë¤.
statementsOptional-
í¨ì 본문ì 구ì±íë 구문ì ëë¤.
ì¤ëª
async function* ííìì async function* statementê³¼ ìë¹í ì ì¬íë©° 문ë²ë ê±°ì ëì¼í©ëë¤. ëì í° ì°¨ì´ì ì í¨ì ì´ë¦ì¸ë°, async function* ííìììë í¨ì ì´ë¦ì ìëµí´ ìµëª
ë¹ë기 ì ëë ì´í° í¨ì를 ë§ë¤ ì ììµëë¤. ë ìì¸í ë´ì©ì í¨ìì ëí ì±í°ë¥¼ ì°¸ê³ íì¸ì.
ìì
>async function* ì¬ì©í기
ë¤ì ìì ë ì´ë¦ì´ ìë ë¹ë기 ì ëë ì´í° í¨ì를 ì ìíê³ xì í ë¹í í, ì¸ì를 ì ê³±í ê°ì ë°íí©ëë¤.
const x = async function* (y) {
yield Promise.resolve(y * y);
};
x(6)
.next()
.then((res) => console.log(res.value)); // 36
ëª ì¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-async-generator-function-definitions> |
ë¸ë¼ì°ì í¸íì±
ê°ì´ 보기
async function*statementAsyncGeneratorFunctionobject- ì´í°ë ì´ì íë¡í ì½
GeneratorFunctionobjectyieldyield*Functionobject- Functions