⊗jsSpAXFCE 248 of 294 menu

Visiškas AJAX klaidų perėmimas JavaScript

Pažadas, kurį grąžina fetch, baigiasi klaida tik tada, kai įvyksta tinklo klaida. Jei serveris grąžino atsaką su statusu 404 ar 500, tada pažadas bus sėkmingai užbaigtas, bet tuo pačiu statusas ok bus nustatytas į false.

Perimkime abi klaidų rūšis:

button.addEventListener('click', function() { let promise = fetch('/ajax.html') .then( response => { if (response.ok) { return response.text(); } else { console.log('blogas atsako statusas'); return ''; } }, ).then( text => { console.log(text); } ).catch( error => { console.log(error); } ); });

Padarykime taip, kad klaida, susijusi su blogu HTTP atsako statusu, taip pat būtų perimama bloku catch. Tam išmeskime ją toliau naudojant throw:

button.addEventListener('click', function() { let promise = fetch('/ajax.html') .then( response => { if (response.ok) { return response.text(); } else { throw new Error('blogas atsako statusas'); } }, ).then( text => { console.log(text); } ).catch( error => { console.log(error); } ); });

Išveskite puslapio tekstą, jei užklausa buvo sėkminga, ir klaidą, jei kas nors nutiko ne taip.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti