Angular2 http.get без Rxjs

#javascript #http #angular

#javascript #http #угловой

Вопрос:

Это способ просто извлекать данные (в angular2) без внедрения в службу зависимостей Observable и Response? Я нашел это избыточным для одного простого запроса.

Ответ №1:

Нет, даже если вы делаете это на чистом Javascript, вам нужно пройти маршрут обратного вызова, просто реализация с Observable помощью является более чистой и простой в обращении.

Вы можете выполнять синхронные запросы, но поскольку Javascript выполняется только в одном потоке, вы заблокируете всю страницу до завершения запроса, поэтому это настоятельно не рекомендуется:

 // DON'T TRY THIS AT HOME OR PRODUCTION OR ANYWHERE ELSE
let request = new XMLHttpRequest();
request.open("GET", theUrl, false); // false for synchronous request
request.send(null);
let response = JSON.parse(request.responseText);
  

Ответ №2:

Angular2 может использовать promises для Http, если вы предпочитаете их Rxjs.

 return this.http.get("/some/url")
         .toPromise();
  

Однако это не синхронно, вам нужно будет связать .then(response) метод, чтобы получить ваш результат.