Baseline Widely available
next()
ã¡ã½ããã¯ãã·ã¼ã±ã³ã¹å
ã®æ¬¡ã®å¤ãè¿ãã¾ãã
asyncGeneratorObject.next()
asyncGeneratorObject.next(value)
弿°
value
çç¥å¯
ã¸ã§ãã¬ã¼ã¿ã¼ã®å
é¨ç¶æ
ã夿´ããããã«ä½¿ç¨ãããªãã·ã§ã³ã®å¤ãnext()
ã¡ã½ããã«æ¸¡ãããå¤ã¯ãyield
ã§åãåãã¾ãã
Promise
ã§ã2 ã¤ã®ããããã£ãæã¤ Object
ã«è§£æ±ºãã¾ãã
done
è«çå¤ã§ãã
true
: ã¸ã§ãã¬ã¼ã¿ã¼ãå¶å¾¡ããã¼ã®çµç«¯ãéãã¦ããå ´åããã®å ´åãvalue
ã¯ã¸ã§ãã¬ã¼ã¿ã¼ã®è¿å¤ãæå®ãã¾ãï¼å¤ã undefined ã§ããå¯è½æ§ãããã¾ãï¼ãfalse
: ã¸ã§ãã¬ã¼ã¿ã¼ããã£ã¨å¤ãã®å¤ãçæãããã¨ãã§ããå ´åãvalue
ã¸ã§ãã¬ã¼ã¿ã¼ã«ãã£ã¦ãããããããã¾ãã¯è¿ãããä»»æã® JavaScript å¤ã
次ã®ä¾ã¯ãåç´ãªã¸ã§ãã¬ã¼ã¿ã¼ã¨ next
ã¡ã½ãããè¿ããªãã¸ã§ã¯ãã示ãã¦ãã¾ãã
// éåæã¿ã¹ã¯ã§ããå®éã«ã¯ãã£ã¨æçãªãã¨ã使ç¨ãã¦ãããã¨ã
// æ³å®ãã¦ãã ããã
function delayedValue(time, value) {
return new Promise((resolve, reject) => {
setTimeout(() => resolve(value), time);
});
}
async function* createAsyncGenerator() {
yield delayedValue(500, 1);
yield delayedValue(500, 2);
yield delayedValue(500, 3);
}
const asyncGen = createAsyncGenerator();
asyncGen.next().then((res) => console.log(res)); // { value: 1, done: false }
asyncGen.next().then((res) => console.log(res)); // { value: 2, done: false }
asyncGen.next().then((res) => console.log(res)); // { value: 3, done: false }
asyncGen.next().then((res) => console.log(res)); // { value: undefined, done: true }
ã¸ã§ãã¬ã¼ã¿ã¼ã«å¤ãéä¿¡
ãã®ä¾ã§ã¯ãnext
ãå¤ä»ãã§å¼ã³åºããã¾ãã
ã¡ã¢: æåã®å¼ã³åºãã¯ãã¸ã§ãã¬ã¼ã¿ã¼ãæåã¯ä½ãåºåããªãã£ããããä½ããã°åºåãã¾ããã
// éåæã¿ã¹ã¯ã§ããå®éã«ã¯ãã£ã¨æçãªãã¨ã使ç¨ãã¦ãããã¨ã
// æ³å®ãã¦ãã ããã
function sleep(time) {
return new Promise((resolve, reject) => {
setTimeout(resolve, time);
});
}
async function* createAsyncGenerator() {
while (true) {
await sleep(500);
const value = yield;
console.log(value);
}
}
async function main() {
const asyncGen = createAsyncGenerator();
// No log at this step: the first value sent through `next` is lost
console.log(await asyncGen.next(1)); // { value: undefined, done: false }
// Logs 2: the value sent through `next`
console.log(await asyncGen.next(2)); // { value: undefined, done: false }
}
main();
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
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