В чем разница между map, observable, subscribe, Promise?

Добрый день. Не поясните что к чему из перечисленного в заголовке?
Мне надо сделать
getVar() {
    
      return this.http.get('test.json')
          .map(res => res.json())
          .toPromise()
          .then(pageTitleBase => pageTitleBase.filter(article => article.id === id)[0]);    
  }

Что происходит, когда я добавляю к return this.http.get('test.json') либо map, либо toPromise(), либо subscribe? Что от чего зависит?
  • Вопрос задан
  • 6072 просмотра
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
map - для каждого результата
toPromise - преобразовать Observable в промис
subscribe - подписаться на изменения в observable

разница между observable и промисами - промисы отрабатывают только один раз, observable можно перезапускать множество раз. То есть вместо того что бы запоминать конфиг, мы буквально создаем объект, описывающий запрос (до вызова subscribe/map запрос реальный не отправляется). Если у вас отвалилась сеть и мы хотим повторить запрос - достаточно еще раз вызвать метод объекта, а не создавать новый запрос. Банально удобнее, особенно в плане реюза кода (можно сделать на уровне сервиса перехватчик запросов, который бы хэндлил за нас такие ситуации).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы