Baseline Widely available
AsyncIterator
对象æ¯ç¬¦å弿¥è¿ä»£å¨åè®®ç对象ï¼å
¶æä¾äº next()
æ¹æ³ç¨ä»¥è¿åä¸ä¸ªå
ç°ä¸ºè¿ä»£å¨ç»æå¯¹è±¡ç promiseãAsyncIterator.prototype
对象æ¯ä¸ä¸ªéèçå
¨å±å¯¹è±¡ï¼ææå
ç½®ç弿¥è¿ä»£å¨é½ç»§æ¿èªå®ãå
¶æä¾äº [Symbol.asyncIterator]()
æ¹æ³ï¼è¯¥æ¹æ³è¿å弿¥è¿ä»£å¨å¯¹è±¡æ¬èº«ï¼ä½¿å¼æ¥è¿ä»£å¨ä¹å¼æ¥å¯è¿ä»£ã
注æï¼AsyncIterator
䏿¯å
¨å±å¯¹è±¡ï¼å°½ç®¡å°æ¥ä¼åºç°å¼æ¥è¿ä»£å¨è¾
婿¹æ³ææ¡ãææå
ç½®å¼æ¥è¿ä»£å¨å
±äº«ç AsyncIterator.prototype
对象å¯ä»¥éè¿ä»¥ä¸ä»£ç è·å¾ï¼
const AsyncIteratorPrototype = Object.getPrototypeOf(
Object.getPrototypeOf(Object.getPrototypeOf((async function* () {})())),
);
æè¿°
ç®åï¼å¯ä¸å
ç½®ç JavaScript 弿¥è¿ä»£å¨æ¯ç±å¼æ¥çæå¨å½æ°è¿åç AsyncGenerator
对象ãè¿æä¸äºå
¶ä»çå
ç½®å¼æ¥è¿ä»£å¨åå¨äº web API ä¸ï¼ä¾å¦ ReadableStream
ç弿¥è¿ä»£å¨ã
æ¯ä¸ªå¼æ¥è¿ä»£å¨é½æä¸ä¸ªä¸åçåå对象ï¼å®å®ä¹äºç¹å®å¼æ¥è¿ä»£å¨ä½¿ç¨ç next()
æ¹æ³ãææè¿äºåå对象é½ç»§æ¿èª AsyncIterator.prototype
ï¼å®æä¾äºä¸ä¸ª [Symbol.asyncIterator]()
æ¹æ³ï¼è¯¥æ¹æ³è¿å弿¥è¿ä»£å¨å¯¹è±¡æ¬èº«ï¼ä½¿å¼æ¥è¿ä»£å¨ä¹å¯å¼æ¥è¿ä»£ã
夿³¨ï¼ AsyncIterator.prototype
å¹¶æªå®ç° [Symbol.iterator]()
ï¼å æ¤é»è®¤æ
åµä¸ï¼å¼æ¥è¿ä»£å¨ä¸æ¯åæ¥å¯è¿ä»£å¯¹è±¡ã
AsyncIterator.prototype[Symbol.asyncIterator]()
è¿å弿¥è¿ä»£å¨å¯¹è±¡æ¬èº«ãè¿ä½¿å¼æ¥è¿ä»£å¨å¯¹è±¡ä¹å¯ä»¥å¼æ¥è¿ä»£ã
ææå
ç½®å¼æ¥è¿ä»£å¨é½å¯ä»¥å¼æ¥è¿ä»£ï¼å æ¤ä½ å¯ä»¥å¨ for await...of
循ç¯ä¸ä½¿ç¨å®ä»¬ï¼
const asyncIterator = (async function* () {
yield 1;
yield 2;
yield 3;
})();
(async () => {
for await (const value of asyncIterator) {
console.log(value);
}
})();
// è¾åºï¼1ï¼2ï¼3
è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4