Baseline Widely available
async function
å
³é®åå¯ç¨äºå®ä¹è¡¨è¾¾å¼ä¸ç弿¥å½æ°ã
ä½ è¿å¯ä»¥ä½¿ç¨å¼æ¥å½æ°å£°æã
è¯æ³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
}
弿¥å½æ°ä¹å¯ä»¥ä½¿ç¨ç®å¤´è¯æ³è¿è¡å®ä¹ã
åæ°name
å¯é
彿°åç§°ï¼å¯çç¥ã妿çç¥åè¿ä¸ªå½æ°å°æä¸ºå¿å彿°ã该åç§°ä» å¯å¨æ¬å½æ°ä¸ä½¿ç¨ã
paramN
å¯é
ä¼ å ¥å½æ°çå½¢ååç§°ã
statements
å¯é
ææå½æ°ä¸»ä½çè¯å¥ã
async function
表达å¼ä¸å¼æ¥å½æ°è¯å¥é常ç¸ä¼¼ï¼è¯æ³ä¹åºæ¬ç¸åã弿¥ function
表达å¼å弿¥ function
è¯å¥ä¹é´ç主è¦åºå«å¨äºå½æ°åç§°ï¼å®å¯ä»¥å¨ async function
表达å¼ä¸çç¥ï¼ä»èå建ä¸ä¸ªå¿å彿°ãasync function
表达å¼å¯ä»¥ç¨ä½ IIFEï¼ç«å³æ§è¡å½æ°è¡¨è¾¾å¼ï¼Immediately Invoked Function Expressionï¼ï¼å®å¨å®ä¹åç«å³è¿è¡ãåè§å½æ°ç« è以è·åæ´å¤ä¿¡æ¯ã
function resolveAfter2Seconds(x) {
return new Promise((resolve) => {
setTimeout(() => {
resolve(x);
}, 2000);
});
}
// èµå¼ç»åéç弿¥å½æ°è¡¨è¾¾å¼
const add = async function (x) {
const a = await resolveAfter2Seconds(20);
const b = await resolveAfter2Seconds(30);
return x + a + b;
};
add(10).then((v) => {
console.log(v); // 4 ç§åæå° 60
});
// ç¨ä½ IIFE ç弿¥å½æ°è¡¨è¾¾å¼
(async function (x) {
const p1 = resolveAfter2Seconds(20);
const p2 = resolveAfter2Seconds(30);
return x + (await p1) + (await p2);
})(10).then((v) => {
console.log(v); // 2 ç§åæå° 60
});
è§è æµè§å¨å
¼å®¹æ§ åè§
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