Baseline Widely available
return()
㯠AsyncGenerator
ã¤ã³ã¹ã¿ã³ã¹ã®ã¡ã½ããã§ããããã return
æãã¸ã§ãã¬ã¼ã¿ã¼æ¬ä½ã®ä¸ã®åæ¢ä¸ã®ä½ç½®ã«æ¿å
¥ããããã®ããã«åä½ããã¸ã§ãã¬ã¼ã¿ã¼ãçµäºãã¦ãtry...finally
ãããã¯ã¨çµã¿åãããéã«ãã¸ã§ãã¬ã¼ã¿ã¼ãä»»æã®ã¯ãªã¼ã³ã¢ããã¿ã¹ã¯ãå®è¡ã§ããããã«ãã¾ãã
asyncGeneratorObject.return(value)
弿° è¿å¤
Promise
ã§ã2 ã¤ã®ããããã£ãæã¤ Object
ã«è§£æ±ºãã¾ãã
done
è«çå¤ã§ãã
true
: ã¸ã§ãã¬ã¼ã¿ã¼é¢æ°ã®å¶å¾¡ããã¼ãæå¾ã«éããå ´åãfalse
: ã¸ã§ãã¬ã¼ã¿ã¼é¢æ°ã®å¶å¾¡ããã¼ãæå¾ã«éãã¦ããããããã«å¤ãçæã§ããå ´åããã㯠return
ã try...finally
ã§æããããããã« finally
ãããã¯ã®ä¸ã« yield
å¼ãããå ´åã®ã¿èµ·ãããã¾ããvalue
弿°ã¨ãã¦æå®ãããå¤ãã¾ã㯠yield
å¼ã try...finally
ã§ã©ããããã¦ããå ´åã finally
ãããã¯ããå¾ããã/è¿ãå¤ãè¿ãã¾ãã
return()
ã¡ã½ããã¯ãå¼ã³åºãããã¨ãã¸ã§ãã¬ã¼ã¿ã¼æ¬ä½ã®ç¾å¨ã®åæ¢ä½ç½®ã« return value;
æãæ¿å
¥ãããããã«è¦ããã¨ãã§ãã¾ãï¼ããã§ value
㯠return()
ã¡ã½ãããæ¸¡ãå¤ã§ãï¼ããããã£ã¦ãå
¸åçãªããã¼ã§ã¯ã return(value)
ãå¼ã³åºãã¨ã { done: true, value: value }
ã è¿ããã¾ããããããyield
å¼ã try...finally
ãããã¯ã§ã©ããããã¦ããå ´åãå¶å¾¡ããã¼ã¯é¢æ°æ¬ä½ãæããã代ããã« finally
ãããã¯ã«é²ã¿ã¾ãããã®å ´åãfinally
ãããã¯ã®ä¸ã«ããã« yield
å¼ãããã°ãè¿ãå¤ã¯ç°ãªããdone
㯠false
ã«ãªãå¯è½æ§ãããã¾ãã
次ã®ä¾ã¯ãåç´ãªéåæã¸ã§ãã¬ã¼ã¿ã¼ã¨ return
ã¡ã½ããã示ãã¦ãã¾ãã
// An async task. Pretend it's doing something more useful
// in practice.
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.return("foo").then((res) => console.log(res)); // { value: "foo", done: true }
asyncGen.next().then((res) => console.log(res)); // { value: undefined, done: true }
ã¸ã§ãã¬ã¼ã¿ã¼ãå®äºããæã« return() ãä¸åº¦ä½¿ç¨
弿° value
ã return()
ã¡ã½ããã«æ¸¡ãããªãå ´åããããã¹ã¯ next() ã¡ã½ãããå¼ã³åºãããã®ããã«è§£æ±ºãã¾ãããã®ä¾ã§ã¯ãã¸ã§ãã¬ã¼ã¿ã¼ã¯å®å
¨ã«çµäºãã¦ããã®ã§ãè¿ãããå¤ã¯ undefined
ã¨ãªãã¾ãã
ã¸ã§ãã¬ã¼ã¿ã¼ã "completed" ç¶æ
ã«ãªã£ãå¾ã§ã return()
ã¯å¼ã³åºããã¨ãã§ãã¾ãããã¸ã§ãã¬ã¼ã¿ã¼ã¯ãã®ç¶æ
ã®ã¾ã¾ã¨ãªãã¾ãã
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, done: false }
asyncGen.next().then((res) => console.log(res)); // { value: 2, done: false }
asyncGen.next().then((res) => console.log(res)); // { value: 3, done: false }
// value is returned undefined, as no value is passed and generator is 'done'
asyncGen.return().then((res) => console.log(res)); // { value: undefined, done: true }
// we can still return a value once the generator is complete
asyncGen.return(1).then((res) => console.log(res)); // { value: 1, done: true }
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
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