ç¨ async/await æ¥éå
éåä¸é¢è¿ä¸ªæ¥èª Promise é¾ ä¸ç« ç示ä¾ä»£ç ï¼ä½¿ç¨ async/await è䏿¯ .then/catchï¼
function loadJson(url) {
return fetch(url)
.then(response => {
if (response.status == 200) {
return response.json();
} else {
throw new Error(response.status);
}
});
}
loadJson('https://javascript.info/no-such-user.json')
.catch(alert); // Error: 404
è§£æå¨ä»£ç ä¸é¢ï¼
async function loadJson(url) { // (1)
let response = await fetch(url); // (2)
if (response.status == 200) {
let json = await response.json(); // (3)
return json;
}
throw new Error(response.status);
}
loadJson('https://javascript.info/no-such-user.json')
.catch(alert); // Error: 404 (4)
è§£æï¼
-
å°å½æ°
loadJsonå为asyncã -
å°å½æ°ä¸ææç
.then齿¿æ¢ä¸ºawaitã -
æä»¬å¯ä»¥è¿å
return response.json()èä¸ç¨çå¾ å®ï¼åè¿æ ·:if (response.status == 200) { return response.json(); // (3) }ç¶åå¤é¨ç代ç å°±å¿ é¡»
awaitè¿ä¸ª promise resolveã卿¬ä¾ä¸å®æ å ³ç´§è¦ã -
loadJsonæåºç error 被.catchå¤çäºãå¨è¿å¿æä»¬æä»¬ä¸è½ä½¿ç¨await loadJson(â¦)ï¼å 为æä»¬ä¸æ¯å¨ä¸ä¸ªasync彿°ä¸ã
