AsyncGeneratorFunction
åºçº¿
广æ³å¯ç¨
èª 2020å¹´1æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
AsyncGeneratorFunction å¯¹è±¡ä¸ºå¼æ¥çæå¨å½æ°æä¾æ¹æ³ãå¨ JavaScript ä¸ï¼æ¯ä¸ªå¼æ¥çæå¨å½æ°å®é
ä¸é½æ¯ä¸ä¸ª AsyncGeneratorFunction 对象ã
注æï¼AsyncGeneratorFunction 䏿¯å
¨å±å¯¹è±¡ãå®å¯ä»¥éè¿ä»¥ä¸ä»£ç è·åï¼
const AsyncGeneratorFunction = async function* () {}.constructor;
AsyncGeneratorFunction æ¯ Function çä¸ä¸ªåç±»ã
å°è¯ä¸ä¸
const AsyncGeneratorFunction = async function* () {}.constructor;
const foo = new AsyncGeneratorFunction(`
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"
æé 彿°
AsyncGeneratorFunction()-
å建ä¸ä¸ªæ°ç
AsyncGeneratorFunction对象ã
å®ä¾å±æ§
åæ¶ä¹ä»å®çç¶ç±» Function ç»§æ¿å®ä¾å±æ§ã
è¿äºå±æ§å®ä¹å¨ AsyncGeneratorFunction.prototype å¹¶ä¸ç±ææ AsyncGeneratorFunction å®ä¾å
±äº«ã
AsyncGeneratorFunction.prototype.constructor-
ç¨äºå建å®ä¾å¯¹è±¡çæé 彿°ã对äº
AsyncGeneratorFunctionå®ä¾ï¼åå§å¼æ¯AsyncGeneratorFunctionæé 彿°ã AsyncGeneratorFunction.prototype.prototype-
ææå¼æ¥çæå¨å½æ°å ±äº«ç¸åç
prototype屿§ï¼å³AsyncGenerator.prototypeãæ¯ä¸ªå¼æ¥çæå¨å½æ°å®ä¾ä¹é½æå®èªå·±çprototype屿§ãå½è°ç¨å¼æ¥çæå¨å½æ°æ¶ï¼è¿åç弿¥çæå¨å¯¹è±¡ç»§æ¿èªå¼æ¥çæå¨å½æ°çprototype屿§ï¼è property 屿§ä¹ç»§æ¿èªAsyncGeneratorFunction.prototype.prototypeã AsyncGeneratorFunction.prototype[Symbol.toStringTag]-
[Symbol.toStringTag]屿§çåå§å¼æ¯å符串"AsyncGeneratorFunction"ãè¯¥å±æ§å¨Object.prototype.toString()ä¸ä½¿ç¨ã
å®ä¾æ¹æ³
åæ¶ä¹ä»å®çç¶ç±» Function ç»§æ¿æ¹æ³ã
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-asyncgeneratorfunction-objects> |