Реализация http наблюдателя неверна? - PullRequest
0 голосов
/ 01 марта 2019

Я хотел бы иметь такую ​​систему ->

  • запрос компонента ngrxstore для создания API и подписки на него, чтобы получить результат
  • мой ngrxstore выполняет вызов API иподпишитесь на него, чтобы получить результат
  • мой сервис выполняет вызов API и возвращает наблюдаемое, что каждый может наблюдать

Здесь текущая реализация

Компонент =>

public CardMoved(){
     const params:load_item_params = {}

    let subscription = this._itemDetailsService.LoadItem(params).subscribe(data => {
            subscription.unsubscribe();
    });
}

NGRX Store =>

LoadItem(params:API_TYPE.load_item_params) : Observable<any> {
    let observable$ = this._http.Post(UtilsService.apiServer + '/load_item', params);
    return observable$.pipe(
        map((data) => {
            return data;
        }),
    )
}

Служба HTTP =>

public Post<T>(url: string, payload: any): Observable<T>;
public Post<T>(url, payload): Observable<T> {
    return this.http.post<T>(url, payload, httpHeaders)
    .pipe(
        retry(MAX_RETRY)
    )
}

Все выглядит хорошо, проблема у меня заключается в том, что если я не подпишусь надаже в моем компоненте http-вызов не отправляется.

Я считаю, что до сих пор не понимаю точно, как можно наблюдать, и все работает, и я не могу понять, почему, если я не подпишусь, не делайте этого.сделать вызов API

1 Ответ

0 голосов
/ 01 марта 2019

Вот урок по Angular Observables из угловой документации.

Основное использование и термины

Как издатель, вы создаете экземпляр Observable, который определяет подписчикафункция.Это функция, которая выполняется, когда потребитель вызывает метод subscribe ().Функция подписчика определяет, как получить или сгенерировать значения или сообщения для публикации.

Чтобы выполнить созданную вами заметку и начать получать уведомления, вы вызываете ее метод subscribe () , проходя мимо наблюдателя.Это объект JavaScript, который определяет обработчики получаемых вами уведомлений.Вызов подписки () возвращает объект Subscription, у которого есть метод unsubscribe (), который вызывается для прекращения получения уведомлений.

https://angular.io/guide/observables

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...