Baseline Widely available *
await éç®åå¯è¢«ç¨ä¾çå¾
Promise
ï¼åªè½å¨ async function
å
§ä½¿ç¨ã
[rv] = await expression;
expression
çå¾
è§£æç Promise
ç©ä»¶æä»»ä½å¼ã
rv = åå³å¼
åå³ Promise ç©ä»¶ç resolved å¼ï¼æç¶è©²å¼ä¸æ¯ Promise ç©ä»¶æï¼åå³è©²å¼æ¬èº«ã
æ¤ await è¡¨ç¤ºæ³ææ«å async å½å¼å·è¡ï¼çå¾ Promise ç©ä»¶çè§£æï¼ä¸¦å¨ promise ç©ä»¶çå¼è¢« resolve æå復 async å½å¼çå·è¡ãawait æ¥èåå³éå被 resolve çå¼ã妿åå³å¼ä¸æ¯ä¸å Promise ç©ä»¶ï¼åæè¢«è½æçº resolved çæ ç Promise ç©ä»¶ã
妿 Promise ç©ä»¶è¢« rejectedï¼å await æä¸åº rejected çå¼ã
ç¯ä¾è¥å° Promise ç©ä»¶å³çµ¦ await éç®å¼ï¼å®æçå¾ Promise è§£æä¸¦åå³ resolve å¾çå¼ã
function resolveAfter2Seconds(x) {
return new Promise((resolve) => {
setTimeout(() => {
resolve(x);
}, 2000);
});
}
async function f1() {
var x = await resolveAfter2Seconds(10);
console.log(x); // 10
}
f1();
è¥å³çµ¦ await çå¼ä¸¦éä¸å Promise ç©ä»¶ï¼å®æå°è©²å¼è½æçº resolved Promiseï¼ä¸¦çå¾ ä¹ã
async function f2() {
var y = await 20;
console.log(y); // 20
}
f2();
è¥ Promise 被 rejectï¼åä¸åº reject å¾çç°å¸¸å¼ã
async function f3() {
try {
var z = await Promise.reject(30);
} catch (e) {
console.log(e); // 30
}
}
f3();
è¦ç¯ ç覽å¨ç¸å®¹æ§ See also
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