Получаване на данни от сървъра чрез донесе
В този урок ще разгледаме какво е донесе и как тя се различава от XMLHttpRequest. Изважда - Това подобрение XMLHttpRequest, която по подразбиране използва Промис и по-опростен и изчистен API.
Трябва да се отбележи, че веднага донесе не се поддържа от всички браузъри. Така например, в IE 10-11 той не работи. В Safari, тя работи с версия 10. Разбира се, има Полифем, която използва XMLHttpRequest с по-стари браузъри за него.
За да obraschatsya сървъра за данни, да се създаде API с данни от изпитвания, използващи mocky.io услуга.
Тук имам данни JSON
Поставете я в искането за тяло и предварително режим, изберете
За всеки домейн може да obraschatsya на този API.
Кликнете върху Генериране на отговор и да получите линк към нашия API.
Сега, нека да напише заявка с помощта на четенето, което ще ни позволи да се вземат данните.
Един от нюанс в четенето, че ние не се директно в данните за отговор, и на живо-обект. Това означава, че ние трябва да е нашата реакция да се направи разбор, за получаване на данните.
Тук използваме .json метод да се направи разбор на отговора като JSON. Резултатът е и призив .json PROMIS, така че ние трябва да напишете след това, в което ще получим резултат. Ако се вгледаме в браузъра, ние имаме на изхода на конзолата на данните.
Този код можете да пишете малко по-чист, а след това се дели на две дизайн и избягване на дълбока гнездене
Ако се вгледаме в браузъра, нашият код работи също толкова добре.
В извличане на данни често имат грешки и трябва да се справя някак си. Извличане с това има и нюанси. Обикновено мислим, че ако пишете .catch, нещо, което да хване някакви грешки.
Ще хване изявление добавя, но с извличаме спецификацията казва, че там ще включва само мрежови грешки. Това е свързано с мрежата. Например, тя пада, когато по искане на изчакване.
Ако искаме да хване обичайните грешки, те трябва да бъдат обработени в първия .След блок. И тъй като ние работим с обещание, ние можем да ги е решен и откази, когато искаме
Добавили сме още един блок за разрешаване и отхвърляне, която ви позволява да вършим работата си правилно вземе. Никое от следните тогава ще се провалят на грешка, а ние веднага попадат в улова.
Сега можем да направим 2 Функция на веригата, тъй като те трябва да бъдат еднакви във всички приложения на вземе.
Ако например би искате да направите заявка за POST, там е достатъчно, за да определите метод пост. Можем също така да добавите тяло, ние искаме да се покаже по Вашето запитване.
Както можем да видим, донесе много по-гъвкава, отколкото XMLHttpRequest. Поради използването на PROMIS това ни позволява да се съчетаят кода, тъй като ние се нуждаем.
И въпреки, че много компании вече ispolyut донесе Искам да обяви редица недостатъци, които виждам.
- Код все още се получи много и трябва да напишете обвивка около една донесе, че е удобно да се използва
- Разбор на данните не е особено полезно, ако получа от сървъра винаги е JSON, а кодът, който трябва да напишете
- Ако искате да предава данни към тялото под формата на обекта, ще трябва да се обадите на обект JSON.stringify, което е неудобно
- Грешка при обработка в донесе, когато не всички грешки попадат в улова Аз лично не ми харесва. За мен, това е логично, че всички грешки винаги попадат в улова
Трябва ли решение на тези въпроси? Аз предпочитам да се използва библиотека или superagent Вардар, където всички тези въпроси са били решени, както и необходимостта да се напише код по Наредбата за минималните. Ето защо, ако имате възможност за избор на вида на използваната технология, опитайте тези библиотеки.
преди 1 месец преди