Получаване на данни от сървъра чрез донесе

В този урок ще разгледаме какво е донесе и как тя се различава от 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 донесе Искам да обяви редица недостатъци, които виждам.

  1. Код все още се получи много и трябва да напишете обвивка около една донесе, че е удобно да се използва
  2. Разбор на данните не е особено полезно, ако получа от сървъра винаги е JSON, а кодът, който трябва да напишете
  3. Ако искате да предава данни към тялото под формата на обекта, ще трябва да се обадите на обект JSON.stringify, което е неудобно
  4. Грешка при обработка в донесе, когато не всички грешки попадат в улова Аз лично не ми харесва. За мен, това е логично, че всички грешки винаги попадат в улова

Трябва ли решение на тези въпроси? Аз предпочитам да се използва библиотека или superagent Вардар, където всички тези въпроси са били решени, както и необходимостта да се напише код по Наредбата за минималните. Ето защо, ако имате възможност за избор на вида на използваната технология, опитайте тези библиотеки.

преди 1 месец преди