ÐеÑепиÑÑÑÑ, викоÑиÑÑовÑÑÑи async/await
ÐеÑепиÑÑÑÑ Ñей пÑиклад ÐºÐ¾Ð´Ñ Ð· ÑоздÑÐ»Ñ ÐанÑÑжок пÑомÑÑÑв, викоÑиÑÑовÑÑÑи 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, поки Ñей пÑомÑÑ Ð±Ñде виконано. У наÑÐ¾Ð¼Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÑ Ñе не Ð¼Ð°Ñ Ð·Ð½Ð°ÑеннÑ. -
Ðомилка, викликана
loadJson, обÑоблÑÑÑÑÑÑ.catch. Ðи не можемо викоÑиÑÑовÑваÑи Ñамawait loadJson(â¦), ÑÐ¾Ð¼Ñ Ñо ми не викоÑиÑÑовÑÑмоasync-ÑÑнкÑÑÑ.
